:root{color:#282b53;background:#f7f7fb;font-family:Ubuntu,Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;--brand-ink: #282b53;--brand-muted: #7679a8;--brand-soft: #f0f1fa;--brand-border: #dedff0;--brand-accent: #5357a6;--brand-accent-dark: #25284d;--surface: #ffffff;--surface-alt: #fbfbfe;--danger: #b42318}*{box-sizing:border-box}body{margin:0;background:linear-gradient(180deg,#fff 0,#f7f7fb 360px),#f7f7fb}button,input,select,textarea{font:inherit}.app-shell{min-height:100vh;padding:14px}.workspace{width:min(1280px,100%);margin:0 auto}.app-header{display:grid;grid-template-columns:1fr auto;align-items:center;gap:12px;margin-bottom:10px}.eyebrow{margin:0 0 3px;color:var(--brand-accent);font-size:11px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}h1,h2,h3,p{margin-top:0}h1{max-width:720px;margin-bottom:0;font-size:24px;line-height:1.1}.user-line{margin:4px 0 0;color:var(--brand-muted);font-size:12px}.auth-shell{display:grid;place-items:center}.login-card{width:min(420px,100%);border:1px solid var(--brand-border);border-radius:8px;background:var(--surface);padding:22px;box-shadow:0 22px 54px #282b531f}.login-form{display:grid;gap:12px;margin-top:18px}.login-form label,.user-create-form label{display:grid;gap:5px;color:var(--brand-muted);font-size:12px;font-weight:700}.login-form input,.user-create-form input,.user-create-form select,.user-row input,.user-row select{min-height:40px;border:1px solid var(--brand-border);border-radius:6px;background:var(--surface);padding:0 10px}.toolbar-menu{position:relative}.menu-popover{position:absolute;top:calc(100% + 8px);right:0;z-index:10;display:grid;min-width:210px;overflow:hidden;border:1px solid var(--brand-border);border-radius:8px;background:var(--surface);box-shadow:0 18px 44px #282b532e}.menu-popover button{min-height:40px;border:0;border-bottom:1px solid var(--brand-border);background:var(--surface);color:var(--brand-ink);cursor:pointer;padding:0 14px;text-align:left}.menu-popover button:last-child{border-bottom:0}.menu-popover button:hover:not(:disabled){background:var(--brand-soft)}.tabs{display:inline-flex;gap:4px;margin-bottom:10px;border:1px solid var(--brand-border);border-radius:8px;background:var(--surface);padding:3px}.tab{min-height:34px;border:0;border-radius:6px;background:transparent;color:var(--brand-muted);cursor:pointer;padding:0 12px;font-weight:700}.tab.active{background:var(--brand-ink);color:#fff}.calendar-panel,.storage-strip{border:1px solid var(--brand-border);border-radius:8px;background:var(--surface);padding:10px 12px}.storage-strip{display:grid;gap:8px;margin-bottom:10px;align-items:center}.storage-stats{display:grid;grid-template-columns:96px 126px minmax(160px,1fr);gap:10px}.storage-stats span{display:block;color:var(--brand-muted);font-size:12px}.storage-stats strong{display:block;margin-top:2px;font-size:15px}.upload-panel{display:grid;gap:14px}.file-picker{display:grid;grid-template-columns:auto 1fr;gap:10px;align-items:center;min-width:0}.file-input{display:none}.primary-button,.secondary-button{min-height:44px;border:0;border-radius:6px;cursor:pointer;font-weight:700}.primary-button{background:var(--brand-ink);color:#fff}.secondary-button{padding:0 18px;background:var(--brand-accent);color:#fff}.primary-button:hover:not(:disabled),.secondary-button:hover:not(:disabled){background:var(--brand-accent-dark)}.primary-button:disabled,.secondary-button:disabled{cursor:not-allowed;opacity:.65}.compact-button{min-height:40px;padding:0 14px;white-space:nowrap}.file-list{display:flex;flex-wrap:wrap;align-items:center;gap:8px;color:var(--brand-muted);min-width:0}.file-list span{border-radius:999px;background:var(--brand-soft);padding:6px 10px;max-width:220px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.error-message{margin:16px 0 0;color:var(--danger);font-weight:700}.compact-message{margin:0}.import-result{grid-column:1 / -1;color:var(--brand-muted);font-size:14px}.import-result summary{cursor:pointer;color:var(--brand-accent);font-weight:700}.import-result-files{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}.import-result-files span{border-radius:999px;background:var(--brand-soft);padding:6px 10px}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:20;display:grid;place-items:center;background:#282b536b;padding:20px}.upload-modal{width:min(560px,100%);max-height:min(520px,calc(100vh - 40px));overflow:auto;border:1px solid var(--brand-border);border-radius:8px;background:var(--surface);padding:18px;box-shadow:0 24px 60px #282b533d}.modal-header{display:grid;grid-template-columns:1fr 40px;align-items:center;gap:12px;margin-bottom:14px}.modal-header h2{margin:0}.modal-close{width:40px;height:40px;font-size:24px}.modal-actions{display:flex;justify-content:flex-end;gap:10px}.calendar-panel{margin-top:10px}.calendar-controls{display:grid;grid-template-columns:1fr auto;align-items:center;gap:12px;margin-bottom:10px}.calendar-toolbar{display:grid;grid-template-columns:36px 1fr 36px;align-items:center;gap:8px;margin-bottom:10px}.calendar-controls .calendar-toolbar{margin-bottom:0}.trip-assignment-bar{display:flex;align-items:center;gap:8px}.trip-assignment-bar select,.trip-assignment-bar input,.trip-filter input{min-height:40px;border:1px solid var(--brand-border);border-radius:6px;background:var(--surface);padding:0 10px}.calendar-toolbar h2{margin:0;text-align:center;text-transform:capitalize}.icon-button{width:36px;height:36px;border:1px solid var(--brand-border);border-radius:6px;background:var(--surface);color:var(--brand-ink);cursor:pointer;font-size:28px;line-height:1}.muted{margin:0;color:var(--brand-muted)}.table-scroll{overflow:auto;max-height:78vh;border:1px solid var(--brand-border);border-radius:8px}.travel-table{width:max-content;min-width:100%;border-collapse:separate;border-spacing:0;font-size:12px}.travel-table th,.travel-table td{width:132px;min-width:132px;max-width:132px;height:74px;border-right:1px solid var(--brand-border);border-bottom:1px solid var(--brand-border);padding:6px;vertical-align:top}.calendar-cell{position:relative;cursor:pointer}.calendar-cell:hover{background:var(--surface-alt)}.calendar-cell.selected{outline:2px solid var(--brand-accent);outline-offset:-2px;background:var(--brand-soft)}.calendar-cell.has-events{cursor:pointer}.travel-table thead th{position:sticky;top:0;z-index:2;height:42px;background:var(--brand-soft);text-align:center}.travel-table .employee-column{position:sticky;left:0;z-index:3;width:230px;min-width:230px;max-width:230px;background:var(--surface);text-align:left}.travel-table thead .employee-column{z-index:4;background:var(--brand-soft)}.calendar-item{position:relative;display:block;width:100%;margin-bottom:6px;border-radius:4px;padding:4px 28px 4px 5px;color:var(--brand-ink);font-size:11px;line-height:1.25;text-align:left;white-space:normal}.calendar-item.flight{background:#e8efff;border-left:3px solid #5470d6}.calendar-item.train{background:#e9f6ef;border-left:3px solid #4d9b72}.calendar-item.hotel{background:#fff0d8;border-left:3px solid #cc8a2b}.calendar-item.transfer{background:#f8e6ee;border-left:3px solid #bc5b83}.calendar-item.other{background:#eeecfb;border-left:3px solid #7679a8}.calendar-item.event{background:#e8f7f4;border-left:3px solid #3d9b91}.calendar-item.assigned{box-shadow:inset 0 0 0 2px var(--brand-ink)}.cell-add-button{position:absolute;bottom:4px;right:4px;z-index:1;width:18px;height:18px;border:1px solid var(--brand-border);border-radius:4px;background:var(--surface);color:var(--brand-ink);cursor:pointer;font-size:13px;line-height:1;opacity:0}.calendar-cell:hover .cell-add-button,.cell-add-button:focus-visible{opacity:1}.event-actions{position:absolute;top:2px;right:2px;display:flex;gap:2px;opacity:0}.calendar-item:hover .event-actions{opacity:1}.event-actions:focus-within{opacity:1}.event-actions button{width:17px;height:17px;border:0;border-radius:3px;background:#ffffffeb;color:var(--brand-ink);cursor:pointer;font-size:11px;line-height:1}.calendar-item-kind{margin-bottom:2px;font-size:10px;font-weight:800;text-transform:uppercase}.calendar-item-title{display:-webkit-box;overflow:hidden;overflow-wrap:anywhere;font-weight:700;-webkit-box-orient:vertical;-webkit-line-clamp:2}.calendar-item-meta,.calendar-item-price{margin-top:3px;color:var(--brand-muted);font-size:10px;overflow-wrap:anywhere}.calendar-item-price{font-weight:700}.trips-page{display:grid;gap:10px}.trip-filter,.trips-layout,.trip-details,.trip-list{border:1px solid var(--brand-border);border-radius:8px;background:var(--surface)}.trip-filter{display:flex;flex-wrap:wrap;gap:10px;padding:10px 12px}.trip-filter label{display:grid;gap:4px;color:var(--brand-muted);font-size:12px;font-weight:700}.trips-layout{display:grid;grid-template-columns:minmax(260px,360px) 1fr;gap:0;overflow:hidden}.trip-list{display:grid;align-content:start;max-height:78vh;overflow:auto;border:0;border-right:1px solid var(--brand-border);border-radius:0}.trip-row{display:grid;gap:4px;border:0;border-bottom:1px solid var(--brand-border);background:var(--surface);cursor:pointer;padding:12px;text-align:left}.trip-row:hover,.trip-row.active{background:var(--brand-soft)}.trip-row span{color:var(--brand-muted);font-size:12px}.trip-details{min-height:320px;max-height:78vh;overflow:auto;border:0;border-radius:0;padding:14px}.trip-details-header{display:grid;grid-template-columns:1fr auto;gap:12px;align-items:start;margin-bottom:12px}.trip-details-header h2{margin-bottom:4px}.trip-details-header p{color:var(--brand-muted)}.cost-summary{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;margin-bottom:12px}.cost-summary div{border:1px solid var(--brand-border);border-radius:8px;padding:10px}.cost-summary span{display:block;color:var(--brand-muted);font-size:12px}.cost-summary strong{display:block;margin-top:4px;font-size:16px}.trip-records{display:grid;gap:8px}.employee-trip-group{display:grid;gap:6px;border:1px solid var(--brand-border);border-radius:8px;padding:10px}.employee-trip-group h3{margin:0;font-size:14px}.employee-trip-events{display:grid;gap:6px}.trip-record{display:grid;grid-template-columns:70px 1.6fr 1fr auto;gap:8px;align-items:center;border:1px solid var(--brand-border);border-radius:8px;padding:8px 10px;font-size:12px}.trip-record span{min-width:0;overflow-wrap:anywhere}.users-page{display:grid;gap:10px}.user-create-form,.users-list,.user-row{border:1px solid var(--brand-border);border-radius:8px;background:var(--surface)}.user-create-form{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;padding:10px 12px}.users-list{display:grid;gap:8px;padding:10px 12px}.user-row{display:grid;grid-template-columns:140px minmax(160px,1fr) 140px 100px 104px minmax(140px,1fr) 92px;gap:8px;align-items:center;padding:10px}.inline-check{display:flex;align-items:center;gap:6px;color:var(--brand-muted);font-size:12px;font-weight:700}.inline-check input{min-height:auto}.event-modal{width:min(680px,100%)}.event-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.event-form label{display:grid;gap:5px;color:var(--brand-muted);font-size:12px;font-weight:700}.event-form input,.event-form select,.event-form textarea{min-height:40px;border:1px solid var(--brand-border);border-radius:6px;padding:8px 10px;color:var(--brand-ink)}.event-form textarea{resize:vertical}.wide-field{grid-column:1 / -1}.summary-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:18px 0 24px}.summary-grid div,.result-card{border:1px solid var(--brand-border);border-radius:8px;padding:16px}.summary-grid span{display:block;color:var(--brand-muted);font-size:14px}.summary-grid strong{display:block;margin-top:6px;font-size:28px}.result-list{display:grid;gap:12px}.result-card h3{margin-bottom:8px}.result-card p{color:var(--brand-muted)}.result-card ul{margin-bottom:0;color:var(--danger)}@media (max-width: 640px){.app-shell{padding:12px}.app-header,.upload-panel,.calendar-panel,.storage-strip{padding:10px}.app-header,.summary-grid,.storage-strip,.storage-stats,.file-picker,.calendar-controls,.trips-layout,.cost-summary,.trip-record,.user-create-form,.user-row{grid-template-columns:1fr}.trip-assignment-bar,.trip-filter,.event-form{display:grid;grid-template-columns:1fr}.trip-list{max-height:none;border-right:0;border-bottom:1px solid var(--brand-border)}.trip-details{max-height:none}.toolbar-menu{justify-self:stretch}.toolbar-menu>.compact-button,.modal-actions .compact-button{width:100%}.menu-popover{left:0;right:0}.modal-actions{display:grid;grid-template-columns:1fr}.travel-table .employee-column{width:170px;min-width:170px;max-width:170px}}
