:root{color-scheme:light dark;--font-sans: "Open Sans", Inter, system-ui, Avenir, Helvetica, Arial, sans-serif;--color-bg: #f6f7fa;--color-surface: #ffffff;--color-surface-alt: #eef0f4;--color-border: #dce0e6;--color-text: #080d24;--color-text-muted: #687781;--color-primary: #a200ff;--color-primary-hover: #8600d1;--color-primary-soft: #f3e5ff;--color-success: #0c7a44;--color-success-soft: #e5f7ec;--color-warning: #9a4a07;--color-warning-soft: #fdf1dd;--color-danger: #c0271b;--color-danger-soft: #fdeceb;--color-neutral-soft: #eef0f4;--color-on-accent: #ffffff;--radius-sm: 8px;--radius-md: 14px;--radius-lg: 20px;--shadow-sm: 0 1px 2px rgba(35, 31, 50, .06);--shadow-md: 0 4px 16px rgba(35, 31, 50, .08);--header-height: 64px;font-family:var(--font-sans);line-height:1.5;font-weight:400;color:var(--color-text);font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--color-bg: #080d24;--color-surface: #10163a;--color-surface-alt: #0c1130;--color-border: #232b52;--color-text: #f2f3f8;--color-text-muted: #8a93b8;--color-primary: #c266ff;--color-primary-hover: #d699ff;--color-primary-soft: #2a1a45;--color-success: #42d699;--color-success-soft: #113226;--color-warning: #f3c374;--color-warning-soft: #352411;--color-danger: #f5897f;--color-danger-soft: #3a1a18;--color-neutral-soft: #161c40;--color-on-accent: #080d24}}:root[data-theme=dark]{--color-bg: #080d24;--color-surface: #10163a;--color-surface-alt: #0c1130;--color-border: #232b52;--color-text: #f2f3f8;--color-text-muted: #8a93b8;--color-primary: #c266ff;--color-primary-hover: #d699ff;--color-primary-soft: #2a1a45;--color-success: #42d699;--color-success-soft: #113226;--color-warning: #f3c374;--color-warning-soft: #352411;--color-danger: #f5897f;--color-danger-soft: #3a1a18;--color-neutral-soft: #161c40;--color-on-accent: #080d24}:root[data-theme=light]{--color-bg: #f6f7fa;--color-surface: #ffffff;--color-surface-alt: #eef0f4;--color-border: #dce0e6;--color-text: #080d24;--color-text-muted: #687781;--color-primary: #a200ff;--color-primary-hover: #8600d1;--color-primary-soft: #f3e5ff;--color-success: #0c7a44;--color-success-soft: #e5f7ec;--color-warning: #9a4a07;--color-warning-soft: #fdf1dd;--color-danger: #c0271b;--color-danger-soft: #fdeceb;--color-neutral-soft: #eef0f4;--color-on-accent: #ffffff}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh;background-color:var(--color-bg);color:var(--color-text)}h1,h2,h3{font-weight:700;letter-spacing:-.01em;color:var(--color-text)}h1{font-size:1.75rem;margin:0 0 1.25rem}h2{font-size:1.15rem;margin:0 0 .9rem}.quick-links{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:1rem}.quick-link-card{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.6rem;padding:1.25rem .75rem;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);color:var(--color-text);font-size:.85rem;font-weight:500;text-align:center;text-decoration:none;transition:transform .12s ease,box-shadow .12s ease,border-color .12s ease}.quick-link-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-md);border-color:var(--color-primary);text-decoration:none}.quick-link-card svg{width:28px;height:28px;color:var(--color-primary);stroke-width:1.75}.dashboard-section{margin-bottom:2rem}.dashboard-section-header{display:flex;align-items:baseline;justify-content:space-between;gap:1rem;margin-bottom:.9rem}.dashboard-section-header h2{margin:0}.dashboard-section-header a{font-size:.85rem;white-space:nowrap}.stat-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:1rem;margin-bottom:1rem}.stat-card{padding:1rem 1.1rem;background:var(--color-surface);border:1px solid var(--color-border);border-left:4px solid var(--color-text-muted);border-radius:var(--radius-md);box-shadow:var(--shadow-sm)}.stat-card-value{font-size:1.6rem;font-weight:700;color:var(--color-text);line-height:1.2}.stat-card-value:has(.currency-totals){font-size:1rem;line-height:1.4}.currency-totals-more{color:var(--color-text-muted);font-weight:500}.stat-card-label{margin-top:.3rem;font-size:.8rem;color:var(--color-text-muted)}.stat-card-primary{border-left-color:var(--color-primary)}.stat-card-success{border-left-color:var(--color-success)}.stat-card-warning{border-left-color:var(--color-warning)}.stat-card-danger{border-left-color:var(--color-danger)}.stat-card-link{text-decoration:none;display:block;transition:transform .12s ease,box-shadow .12s ease}.stat-card-link:hover{transform:translateY(-2px);text-decoration:none}.stat-card-link:hover .stat-card{box-shadow:var(--shadow-md)}.dashboard-recent-list{display:flex;flex-direction:column;gap:.5rem}.dashboard-recent-row{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.65rem .9rem;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-sm);font-size:.85rem}.dashboard-recent-row a{font-weight:600}.dashboard-recent-row-meta{display:flex;align-items:center;gap:.75rem;color:var(--color-text-muted)}.dashboard-empty{color:var(--color-text-muted);font-size:.85rem}.po-budget-summary{display:flex;flex-wrap:wrap;gap:1.25rem;padding:.75rem 1rem;margin:-.5rem 0 .5rem;background:var(--color-primary-soft);border-radius:var(--radius-sm);font-size:.85rem;color:var(--color-text)}p{color:var(--color-text-muted)}.muted{color:var(--color-text-muted);font-size:.85rem}a{font-weight:500;color:var(--color-primary);text-decoration:none}a:hover{color:var(--color-primary-hover);text-decoration:underline}.app-shell{display:flex;flex-direction:column;min-height:100vh}.app-header{position:sticky;top:0;z-index:20;display:flex;align-items:center;gap:1rem;height:var(--header-height);padding:0 1.25rem;background-color:var(--color-surface);border-bottom:1px solid var(--color-border)}.app-brand{display:flex;align-items:center;gap:.6rem;font-weight:700;font-size:1.05rem;color:var(--color-text);white-space:nowrap}.app-brand-logo{height:28px;width:auto;display:block}.app-brand:hover{color:var(--color-text);text-decoration:none}.nav-toggle{display:none;margin-left:auto;background:transparent;border:1px solid var(--color-border);padding:.4rem .6rem}.app-header nav{display:flex;align-items:center;gap:.25rem;flex:1;flex-wrap:wrap;overflow-x:auto;scrollbar-width:none}.app-header nav::-webkit-scrollbar{display:none}.app-header nav a{color:var(--color-text-muted);font-size:.9rem;font-weight:500;padding:.45rem .7rem;border-radius:var(--radius-sm);white-space:nowrap}.app-header nav a:hover{color:var(--color-text);background-color:var(--color-surface-alt);text-decoration:none}.app-header nav a.active{color:var(--color-primary);background-color:var(--color-primary-soft)}.nav-badge{display:inline-flex;align-items:center;justify-content:center;min-width:1.2rem;height:1.2rem;padding:0 .35rem;margin-left:.4rem;border-radius:999px;background-color:var(--color-danger);color:#fff;font-size:.7rem;font-weight:700;line-height:1}.app-header-user{display:flex;align-items:center;gap:.75rem;font-size:.85rem;color:var(--color-text-muted);white-space:nowrap}.app-header-user select{width:auto;padding:.3rem .5rem}.theme-toggle{background:transparent;color:var(--color-text);border:1px solid var(--color-border);border-radius:var(--radius-sm);padding:.3rem .5rem;line-height:1;font-size:.95rem}.theme-toggle:hover{background-color:var(--color-surface-alt)}.app-content{flex:1;width:100%;max-width:1120px;margin:0 auto;padding:1.75rem 1.25rem 3rem}section{background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);padding:1.5rem 1.5rem 1.75rem;margin-bottom:1.5rem}.app-content>section:only-child,.app-content>section:last-child{margin-bottom:0}section section{box-shadow:none;background-color:var(--color-surface-alt)}label{font-size:.85rem;font-weight:600;color:var(--color-text-muted)}input,select,textarea{font:inherit;color:var(--color-text);background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-sm);padding:.55rem .7rem;width:100%;transition:border-color .15s,box-shadow .15s}input[type=checkbox],input[type=radio]{width:auto;padding:0;accent-color:var(--color-primary)}input[type=file]{padding:.4rem}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-soft)}textarea{min-height:5rem;resize:vertical}.po-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem 1.25rem;max-width:720px}.po-form label{display:flex;flex-direction:column;gap:.35rem}.po-form label:has(textarea),.po-form>button{grid-column:1 / -1}@media(max-width:640px){.po-form{grid-template-columns:1fr}}.po-lines{grid-column:1 / -1;border:1px solid var(--color-border);border-radius:var(--radius-md, 8px);padding:1rem;display:flex;flex-direction:column;gap:.5rem}.po-line-row{display:grid;grid-template-columns:2fr 1fr .8fr .8fr auto auto;gap:.5rem;align-items:center}.po-line-amount{text-align:right;font-variant-numeric:tabular-nums;color:var(--color-text-muted)}.po-lines-total{text-align:right;font-weight:700;margin:0}@media(max-width:640px){.po-line-row{grid-template-columns:1fr}}.inline-form{display:flex;gap:.5rem;margin-bottom:1rem;flex-wrap:wrap;align-items:center}.inline-form input{width:auto;flex:1 1 180px}.link-button{background:none;border:none;box-shadow:none;padding:.3rem 0;width:auto;color:var(--color-primary);font-size:.85rem;font-weight:500;cursor:pointer}.link-button:hover{background:none;color:var(--color-primary-hover);text-decoration:underline}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f111780;display:flex;align-items:center;justify-content:center;padding:1.5rem;z-index:100}.modal-panel{background:var(--color-surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);padding:1.5rem;width:100%;max-width:640px;max-height:85vh;overflow-y:auto}.modal-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:.5rem}.modal-header h3{margin:0}.modal-close{background:none;border:none;box-shadow:none;width:auto;padding:.2rem .5rem;font-size:1.3rem;line-height:1;color:var(--color-text-muted);cursor:pointer}.modal-close:hover{color:var(--color-text);background:var(--color-surface-alt)}.modal-actions{display:flex;gap:.6rem;margin-top:.75rem}.modal-actions button.secondary{background:var(--color-surface);color:var(--color-text);border:1px solid var(--color-border);box-shadow:none}.modal-actions button.secondary:hover{background:var(--color-surface-alt)}.filters{display:flex;gap:.6rem;margin-bottom:1.1rem;flex-wrap:wrap}.filters select,.filters input{width:auto;flex:1 1 160px;max-width:220px}button{border-radius:var(--radius-md);border:1px solid transparent;padding:.55em 1.1em;font-size:.9rem;font-weight:600;font-family:inherit;background-color:var(--color-primary);color:var(--color-on-accent);cursor:pointer;transition:background-color .15s,border-color .15s,opacity .15s}button:hover{background-color:var(--color-primary-hover)}button:disabled{opacity:.55;cursor:not-allowed}button:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.persona-list button,.login-page button{background-color:var(--color-surface);color:var(--color-text);border-color:var(--color-border)}.persona-list button:hover,.login-page button:hover{border-color:var(--color-primary);color:var(--color-primary);background-color:var(--color-primary-soft)}.nav-toggle{color:var(--color-text);background-color:var(--color-surface)}.decision-actions{display:flex;gap:.4rem;flex-wrap:wrap}.decision-actions button:nth-of-type(1){background-color:var(--color-success)}.decision-actions button:nth-of-type(1):hover{background-color:#0b7d46}.decision-actions button:nth-of-type(2){background-color:var(--color-warning)}.decision-actions button:nth-of-type(2):hover{background-color:#92420a}.decision-actions button:nth-of-type(3){background-color:var(--color-danger)}.decision-actions button:nth-of-type(3):hover{background-color:#b3261e}.link-button{background:none;border:none;padding:0;color:var(--color-primary);font-size:.85rem;cursor:pointer;text-decoration:underline}.reclassify-row{display:flex;gap:1rem;flex-wrap:wrap;align-items:center}.reclassify-row label{display:flex;flex-direction:column;gap:.25rem;font-size:.8rem;color:var(--color-text-muted)}.table-wrap{overflow-x:auto;border:1px solid var(--color-border);border-radius:var(--radius-md);margin-bottom:1rem}table{border-collapse:collapse;width:100%;min-width:480px;font-size:.9rem}th,td{padding:.65rem .85rem;text-align:left;border-bottom:1px solid var(--color-border);overflow-wrap:anywhere}td:has(>*:only-child:is(a,button,input)){white-space:normal}thead th{background-color:var(--color-surface-alt);color:var(--color-text-muted);font-size:.75rem;text-transform:uppercase;letter-spacing:.04em;font-weight:700;position:sticky;top:0}tbody tr:last-child td{border-bottom:none}tbody tr:hover{background-color:var(--color-surface-alt)}.badge{display:inline-flex;align-items:center;gap:.35rem;padding:.25rem .6rem;border-radius:999px;font-size:.75rem;font-weight:700;white-space:nowrap;background-color:var(--color-neutral-soft);color:var(--color-text-muted)}.badge:before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor}.badge-success{background-color:var(--color-success-soft);color:var(--color-success)}.badge-warning{background-color:var(--color-warning-soft);color:var(--color-warning)}.badge-danger{background-color:var(--color-danger-soft);color:var(--color-danger)}.badge-primary{background-color:var(--color-primary-soft);color:var(--color-primary)}.login-page-wrap{max-width:640px;width:100%;margin:8vh auto 0;display:flex;flex-direction:column;gap:1.25rem}.login-hero{position:relative;overflow:hidden;border-radius:var(--radius-lg);padding:2.5rem 2rem 3rem;text-align:center;color:#fff;background:linear-gradient(125deg,#2764ff,#a200ff 52%,#ec008d);box-shadow:var(--shadow-md)}.login-hero-waves{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%}.login-hero-logo{position:absolute;top:1.5rem;left:1.75rem;height:28px;width:auto;z-index:1}.login-hero-title{position:relative;z-index:1;margin:2.5rem 0 .75rem;font-size:1.9rem;font-weight:700;color:#fff}.login-hero-subtitle{position:relative;z-index:1;margin:0 0 1.5rem;color:#ffffffe0;font-size:.9rem}.login-hero-cta{position:relative;z-index:1;display:inline-block;margin-top:.5rem;padding:.75em 2.4em;border-radius:999px;background-color:#fff;color:#a200ff;font-weight:700;font-size:.95rem;letter-spacing:.02em;text-decoration:none;transition:transform .12s ease,box-shadow .12s ease}.login-hero-cta:hover{transform:translateY(-1px);box-shadow:0 6px 18px #080d2440;color:#8600d1;text-decoration:none}.login-page{--color-surface: #ffffff;--color-surface-alt: #eef0f4;--color-border: #dce0e6;--color-text: #080d24;--color-text-muted: #687781;--color-primary: #a200ff;--color-primary-hover: #8600d1;--color-primary-soft: #f3e5ff;--color-on-accent: #ffffff;background-color:var(--color-surface);color:var(--color-text);text-align:center}.button-link{display:inline-block;margin-top:1rem;border-radius:var(--radius-md);padding:.55em 1.1em;font-size:.9rem;font-weight:600;background-color:var(--color-primary);color:var(--color-on-accent);text-decoration:none}.button-link:hover{background-color:var(--color-primary-hover);color:var(--color-on-accent);text-decoration:none}.login-error{color:var(--color-danger);background-color:var(--color-danger-soft);border-radius:var(--radius-sm);padding:.6rem .8rem;list-style:none;margin:0 0 1rem}.persona-list{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(2,1fr);gap:.6rem}.persona-list button{width:100%}@media(max-width:480px){.persona-list{grid-template-columns:1fr}}.subnav{display:flex;gap:.4rem;flex-wrap:wrap;margin-bottom:1.5rem}.subnav a{padding:.5rem .9rem;border-radius:var(--radius-sm);font-size:.85rem;font-weight:600;color:var(--color-text-muted);background-color:var(--color-surface);border:1px solid var(--color-border)}.subnav a:hover{color:var(--color-text);background-color:var(--color-surface-alt);text-decoration:none}.subnav a.active{color:var(--color-primary);background-color:var(--color-primary-soft);border-color:var(--color-primary-soft)}.row-actions{display:flex;gap:.4rem;flex-wrap:wrap;white-space:normal!important}.approver-pool{padding:.5rem .25rem}.chip-list{list-style:none;margin:.5rem 0;padding:0;display:flex;gap:.4rem;flex-wrap:wrap}.chip{display:inline-flex;align-items:center;gap:.4rem;padding:.3rem .5rem .3rem .7rem;border-radius:999px;background-color:var(--color-neutral-soft);color:var(--color-text);font-size:.8rem}.chip button{background:transparent;color:var(--color-text-muted);border:none;padding:0 .2rem;font-size:.9rem;line-height:1}.chip button:hover{color:var(--color-danger);background:transparent}@media(max-width:860px){.nav-toggle{display:inline-flex}.app-header{flex-wrap:wrap;height:auto;min-height:var(--header-height);padding:.6rem 1rem}.app-header nav{order:3;flex:1 1 100%;flex-direction:column;align-items:stretch;max-height:0;overflow:hidden;gap:.2rem;transition:max-height .2s ease}.app-header nav.open{max-height:480px;overflow-y:auto;padding-top:.5rem;border-top:1px solid var(--color-border);margin-top:.6rem}.app-header nav a{width:100%}.app-header-user{margin-left:auto}.app-content{padding:1.25rem 1rem 2rem}section{padding:1.1rem 1.1rem 1.35rem;border-radius:var(--radius-md)}}
