:root{font-family:Inter,system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;--color-primary: #0056b3;--color-primary-hover: #004494;--color-hazard: #ed6c02;--color-hazard-hover: #d35b00;--color-locked: #f0f2f5;--color-success: #2e7d32;--color-text-high-contrast: #1a1a1a;--color-text-secondary: #666666;--color-background-app: #f4f6f8;--color-surface: #ffffff;--color-border: #cccccc;--input-height: 56px;--button-height: 48px;--radius-sm: 4px;--radius-md: 8px;--spacing-unit: 8px;color-scheme:light;color:var(--color-text-high-contrast);background-color:var(--color-background-app)}body{margin:0;min-width:320px;min-height:100vh;font-size:16px;background-color:var(--color-background-app)}h1,h2,h3,h4,h5,h6{font-weight:700;color:var(--color-text-high-contrast);margin-top:0;margin-bottom:.5em}h1{font-size:24px}h2{font-size:20px}h3{font-size:18px}input,select,textarea{display:block;width:100%;min-height:var(--input-height);padding:0 16px;font-size:16px;border:1px solid var(--color-border);border-radius:var(--radius-sm);background-color:var(--color-surface);color:var(--color-text-high-contrast);box-sizing:border-box;margin-bottom:1rem;transition:border-color .2s}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 1px var(--color-primary)}label{display:block;font-weight:600;font-size:14px;margin-bottom:4px;color:var(--color-text-secondary)}button{display:inline-flex;align-items:center;justify-content:center;min-height:var(--button-height);padding:0 24px;font-size:16px;font-weight:600;border-radius:var(--radius-sm);border:none;cursor:pointer;transition:background-color .2s,transform .1s;background-color:var(--color-primary);color:#fff}button:hover{background-color:var(--color-primary-hover)}button:active{transform:scale(.98)}button:disabled{background-color:#ccc;cursor:not-allowed;transform:none}button.secondary{background-color:transparent;border:1px solid var(--color-primary);color:var(--color-primary)}button.secondary:hover{background-color:#0056b30d}button.hazard{background-color:var(--color-hazard)}button.hazard:hover{background-color:var(--color-hazard-hover)}button.ghost{background-color:transparent;color:var(--color-text-secondary);border:1px solid #ddd}button.ghost:hover{background-color:#f0f0f0;color:var(--color-text-high-contrast)}.card{background:var(--color-surface);border-radius:var(--radius-md);box-shadow:0 1px 3px #0000001a;padding:20px;margin-bottom:16px;border:1px solid rgba(0,0,0,.05)}.card h3{margin-top:0}.card.project-card{border-left:5px solid var(--color-primary)}.layout-container{display:flex;min-height:100vh}.sidebar{display:none;width:240px;background-color:#002b59;color:#fff;flex-direction:column;position:fixed;top:0;bottom:0;left:0;padding:20px;box-sizing:border-box;z-index:100}.sidebar .logo-area{margin-bottom:40px;font-size:24px;font-weight:700;letter-spacing:1px}.sidebar nav{display:flex;flex-direction:column;gap:10px;flex:1}.sidebar .nav-item{color:#ffffffb3;text-decoration:none;padding:12px 16px;border-radius:var(--radius-sm);transition:all .2s}.sidebar .nav-item:hover,.sidebar .nav-item.active{background-color:#ffffff1a;color:#fff}.sidebar .user-area{border-top:1px solid rgba(255,255,255,.1);padding-top:20px}.sidebar .logout-btn{width:100%;background:transparent;border:1px solid rgba(255,255,255,.2);margin-top:10px}.sidebar .logout-btn:hover{background:#ffffff1a}.main-content{flex:1;display:flex;flex-direction:column;width:100%}@media (min-width: 768px){.main-content{margin-left:240px}.sidebar{display:flex}}.top-bar{background-color:var(--color-surface);border-bottom:1px solid var(--color-border);padding:0 24px;height:64px;display:flex;align-items:center;justify-content:space-between;position:sticky;top:0;z-index:90}.status-indicator{display:flex;align-items:center;font-size:14px;color:var(--color-text-secondary)}.status-indicator .dot{width:8px;height:8px;border-radius:50%;margin-right:8px}.status-indicator .dot.green{background-color:var(--color-success)}.status-indicator .dot.red{background-color:var(--color-hazard)}.page-wrapper{padding:24px;max-width:1200px;margin:0 auto;width:100%;box-sizing:border-box;flex:1}.bottom-nav{display:flex;position:fixed;bottom:0;left:0;right:0;background:var(--color-surface);border-top:1px solid var(--color-border);height:60px;z-index:100;justify-content:space-around;align-items:center;box-shadow:0 -2px 10px #0000000d}.nav-item-mobile{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;text-decoration:none;font-size:12px;color:var(--color-text-secondary);height:100%;background:none;border:none;padding:0}.nav-item-mobile.active{color:var(--color-primary)}.bottom-nav-spacer{height:60px}@media (min-width: 768px){.bottom-nav,.bottom-nav-spacer{display:none}}.full-width-mobile{width:100%}@media (min-width: 768px){.full-width-mobile{width:auto}}.custom-checkbox{-moz-appearance:none;appearance:none;-webkit-appearance:none;background-color:var(--color-surface);margin:0;font:inherit;color:var(--color-primary);width:1.25rem;height:1.25rem;min-height:unset;border:1px solid #cbd5e1;border-radius:.25rem;display:inline-block;vertical-align:middle;background-origin:border-box;-webkit-user-select:none;user-select:none;flex-shrink:0;transition:all .1s ease-in-out;cursor:pointer}.custom-checkbox:focus{outline:2px solid transparent;outline-offset:2px;box-shadow:0 0 0 2px var(--color-surface),0 0 0 4px var(--color-primary)}.custom-checkbox:checked{border-color:transparent;background-color:currentColor;background-size:100% 100%;background-position:center;background-repeat:no-repeat;background-image:url("data:image/svg+xml,%3csvg viewBox='0 0 16 16' fill='white' xmlns='http://www.w3.org/2000/svg'%3e%3cpath d='M12.207 4.793a1 1 0 010 1.414l-5 5a1 1 0 01-1.414 0l-2-2a1 1 0 011.414-1.414L6.5 9.086l4.293-4.293a1 1 0 011.414 0z'/%3e%3c/svg%3e")}.custom-checkbox:disabled{background-color:#f1f5f9;border-color:#e2e8f0;cursor:not-allowed;opacity:.6}.custom-checkbox-hazard{color:#ed6c02}.custom-checkbox-hazard:focus{box-shadow:0 0 0 2px var(--color-surface),0 0 0 4px #ed6c02}.custom-scrollbar::-webkit-scrollbar{height:6px;width:6px}.custom-scrollbar::-webkit-scrollbar-thumb{background-color:#cbd5e1;border-radius:4px}@keyframes shake-bell{0%{transform:rotate(0)}10%{transform:rotate(15deg)}20%{transform:rotate(-15deg)}30%{transform:rotate(10deg)}40%{transform:rotate(-10deg)}50%{transform:rotate(5deg)}60%{transform:rotate(-5deg)}70%{transform:rotate(0)}to{transform:rotate(0)}}.shake-animation{animation:shake-bell 2s infinite ease-in-out;transform-origin:top center}@keyframes dynamic-ambient{0%{box-shadow:0 0 rgba(var(--ambient-color-rgb),.4)}70%{box-shadow:0 0 0 var(--ambient-glow-thickness, 10px) rgba(var(--ambient-color-rgb),0)}to{box-shadow:0 0 rgba(var(--ambient-color-rgb),0)}}.ambient-glow-blue{--ambient-color-rgb: 0, 86, 179;--ambient-glow-thickness: 10px;animation:dynamic-ambient 3s infinite}.ambient-glow-purple{--ambient-color-rgb: 126, 34, 206;--ambient-glow-thickness: 10px;animation:dynamic-ambient 3s infinite}.custom-tooltip-trigger{position:relative;display:flex;align-items:center;width:100%}.custom-tooltip-trigger>*{flex:1;min-width:0}.custom-tooltip{position:absolute;visibility:hidden;opacity:0;transition:opacity .2s ease-in-out,visibility .2s;transition-delay:.4s;background-color:#1a202c;color:#fff;text-align:center;border-radius:6px;padding:8px 12px;z-index:1001;width:max-content;max-width:280px;font-size:14px;font-weight:500;line-height:1.5;pointer-events:none;box-shadow:0 10px 15px -3px #0003,0 4px 6px -2px #0000001a;white-space:normal}.custom-tooltip-trigger:hover .custom-tooltip{visibility:visible;opacity:1}.custom-tooltip.top{bottom:calc(100% + 10px);left:50%;transform:translate(-50%)}.custom-tooltip.top:after{content:"";position:absolute;top:100%;left:50%;margin-left:-5px;border-width:5px;border-style:solid;border-color:#1a202c transparent transparent transparent}.custom-tooltip.bottom{top:calc(100% + 10px);left:50%;transform:translate(-50%)}.custom-tooltip.bottom:after{content:"";position:absolute;bottom:100%;left:50%;margin-left:-5px;border-width:5px;border-style:solid;border-color:transparent transparent #1a202c transparent}.custom-tooltip.right{top:50%;left:calc(100% + 10px);transform:translateY(-50%)}.custom-tooltip.right:after{content:"";position:absolute;right:100%;top:50%;margin-top:-5px;border-width:5px;border-style:solid;border-color:transparent #1a202c transparent transparent}
