:root{--forest-pine: #122716;--forest-light: #1b3520;--brushed-ochre: #e2b13c;--ochre-dark: #b88d27;--chalk-white: #f7f9f8;--white: #ffffff;--slate-gray: #5c6e69;--border-color: rgba(18, 39, 22, .08);--success-color: #2e7d32;--error-color: #c62828;--warning-color: #ef6c00;--font-headings: "Fraunces", serif;--font-sans: "Plus Jakarta Sans", sans-serif;--shadow-sm: 0 2px 4px rgba(0, 0, 0, .04);--shadow-md: 0 4px 12px rgba(0, 0, 0, .08)}*{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font-sans);background-color:var(--chalk-white);color:#212529;line-height:1.5;height:100vh;overflow:hidden}.auth-container{display:flex;align-items:center;justify-content:center;height:100vh;padding:2rem;background-color:var(--forest-pine);background-image:radial-gradient(circle at center,var(--forest-light) 0%,var(--forest-pine) 100%)}.auth-card{background-color:var(--white);padding:3rem;border-radius:12px;width:100%;max-width:460px;box-shadow:0 10px 30px #0000004d}.auth-header{text-align:center;margin-bottom:2rem}.auth-header img{height:54px;border-radius:50%;border:1.5px solid var(--brushed-ochre);margin-bottom:1rem}.auth-header h1{font-family:var(--font-headings);font-size:2rem;color:var(--forest-pine)}.auth-header p{color:var(--slate-gray);font-size:.9rem;margin-top:.25rem}.form-group{margin-bottom:1.25rem}.form-group label{display:block;font-size:.85rem;font-weight:700;color:var(--forest-pine);margin-bottom:.5rem}.form-control{width:100%;padding:.75rem 1rem;font-family:var(--font-sans);border:1px solid var(--border-color);border-radius:6px;font-size:.95rem;transition:all .2s ease}.form-control:focus{outline:none;border-color:var(--brushed-ochre);box-shadow:0 0 0 3px #e2b13c26}.btn-primary{width:100%;padding:.85rem;background-color:var(--forest-pine);color:var(--white);border:none;border-radius:6px;font-family:var(--font-sans);font-weight:700;font-size:1rem;cursor:pointer;transition:all .2s ease}.btn-primary:hover{background-color:var(--forest-light)}.auth-footer{text-align:center;margin-top:1.5rem;font-size:.88rem;color:var(--slate-gray)}.auth-footer a{color:var(--ochre-dark);font-weight:700;text-decoration:none}.app-layout{display:grid;grid-template-columns:260px 1fr;height:100vh;overflow:hidden}.sidebar{background-color:var(--forest-pine);color:var(--white);display:flex;flex-direction:column;padding:1.5rem;border-right:1px solid rgba(255,255,255,.05)}.sidebar-header{display:flex;align-items:center;gap:.75rem;padding-bottom:1.5rem;border-bottom:1px solid rgba(255,255,255,.08);margin-bottom:1.5rem}.sidebar-header img{height:40px;border-radius:50%}.sidebar-brand h2{font-family:var(--font-headings);font-size:1.2rem}.sidebar-brand span{font-size:.75rem;color:var(--brushed-ochre);display:block}.sidebar-nav{display:flex;flex-direction:column;gap:.5rem;flex-grow:1}.nav-item{display:flex;align-items:center;gap:.75rem;padding:.75rem 1rem;color:#ffffffb3;text-decoration:none;border-radius:6px;font-size:.9rem;font-weight:600;transition:all .2s ease;cursor:pointer}.nav-item:hover,.nav-item.active{color:var(--white);background-color:#ffffff14}.nav-item.active{border-left:3px solid var(--brushed-ochre);border-top-left-radius:0;border-bottom-left-radius:0}.sidebar-footer{padding-top:1rem;border-top:1px solid rgba(255,255,255,.08)}.user-badge{display:flex;align-items:center;gap:.75rem}.user-avatar{background-color:var(--brushed-ochre);color:var(--forest-pine);font-weight:800;width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:.85rem}.user-info h5{font-size:.85rem;font-weight:700}.user-info span{font-size:.75rem;opacity:.7}.main-viewport{display:flex;flex-direction:column;overflow:hidden}.top-bar{background-color:var(--white);height:64px;border-bottom:1px solid var(--border-color);display:flex;align-items:center;justify-content:space-between;padding:0 2rem}.top-bar h2{font-family:var(--font-headings);color:var(--forest-pine);font-size:1.4rem}.project-selector{font-family:var(--font-sans);padding:.4rem .8rem;border:1px solid var(--border-color);border-radius:6px;font-weight:600}.content-pane{flex-grow:1;overflow-y:auto;padding:2rem}.grid-container{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1.5rem}.dashboard-card{background-color:var(--white);border-radius:8px;border:1px solid var(--border-color);padding:1.5rem;box-shadow:var(--shadow-sm);transition:all .2s ease;cursor:pointer;position:relative;overflow:hidden}.dashboard-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-md);border-color:var(--brushed-ochre)}.dashboard-card h3{font-family:var(--font-headings);color:var(--forest-pine);margin-bottom:.5rem;font-size:1.25rem}.dashboard-card p{color:var(--slate-gray);font-size:.88rem;margin-bottom:1rem}.card-meta{display:flex;justify-content:space-between;font-size:.78rem;color:var(--slate-gray);border-top:1px solid rgba(0,0,0,.03);padding-top:.75rem}.card-meta strong{color:var(--forest-pine)}.badge-status{padding:.25rem .5rem;border-radius:4px;font-size:.7rem;font-weight:700;text-transform:uppercase}.status-active{background-color:#2e7d321a;color:var(--success-color)}.status-inherited{background-color:#e2b13c1a;color:var(--ochre-dark)}.detail-layout{display:grid;grid-template-columns:1.2fr .8fr;gap:2rem;align-items:start}.spec-info-card{background-color:var(--white);border-radius:8px;border:1px solid var(--border-color);padding:2rem;box-shadow:var(--shadow-sm)}.spec-header-row{display:flex;justify-content:space-between;align-items:flex-start;border-bottom:1px solid var(--border-color);padding-bottom:1rem;margin-bottom:1.5rem}.spec-title-group h3{font-family:var(--font-headings);color:var(--forest-pine);font-size:1.6rem}.spec-title-group span{font-size:.85rem;color:var(--slate-gray)}.btn{padding:.5rem 1rem;font-family:var(--font-sans);font-weight:700;border-radius:6px;cursor:pointer;font-size:.88rem;transition:all .2s ease;border:none;display:inline-flex;align-items:center;gap:.5rem}.btn-secondary{background-color:var(--white);border:1px solid var(--border-color);color:var(--forest-pine)}.btn-secondary:hover{background-color:var(--chalk-white);border-color:var(--forest-pine)}.btn-accent-color{background-color:var(--brushed-ochre);color:var(--forest-pine)}.btn-accent-color:hover{background-color:var(--ochre-dark)}.section-title{font-family:var(--font-headings);font-size:1.25rem;color:var(--forest-pine);margin-bottom:1rem;border-bottom:1px solid rgba(0,0,0,.03);padding-bottom:.5rem}.volume-scale-box{background-color:var(--chalk-white);padding:1rem;border-radius:6px;border:1px solid var(--border-color);margin-bottom:1rem;display:flex;align-items:center;justify-content:space-between;gap:1.5rem}.volume-input-group{display:flex;align-items:center;gap:.5rem}.volume-input-group input{width:80px;padding:.35rem .5rem;border-radius:4px;border:1px solid var(--border-color);font-family:var(--font-sans);font-weight:700;text-align:center}.data-table{width:100%;border-collapse:collapse;margin-bottom:2rem}.data-table th,.data-table td{padding:.75rem 1rem;text-align:left;border-bottom:1px solid var(--border-color)}.data-table th{background-color:var(--chalk-white);color:var(--forest-pine);font-weight:700;font-size:.85rem;text-transform:uppercase}.data-table td{font-size:.9rem}.form-card{background-color:var(--white);border-radius:8px;border:1px solid var(--border-color);padding:2rem;box-shadow:var(--shadow-sm)}.alert-banner{background-color:#c628281a;border:1px solid var(--error-color);color:var(--error-color);padding:1rem 1.5rem;border-radius:6px;margin-bottom:1.5rem;display:none;align-items:flex-start;gap:1rem}.alert-banner.active{display:flex}.alert-banner strong{display:block;font-size:.95rem;margin-bottom:.2rem}.alert-banner p{font-size:.85rem}.alert-close{cursor:pointer;font-size:1.25rem;border:none;background:none;color:var(--error-color)}.history-list{display:flex;flex-direction:column;gap:1rem}.history-item{border:1px solid var(--border-color);background-color:var(--white);border-radius:6px;padding:1rem}.history-header{display:flex;justify-content:space-between;margin-bottom:.5rem;font-size:.85rem}.history-op{font-weight:700;color:var(--forest-pine)}.history-date{color:var(--slate-gray)}.history-metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:.5rem;background-color:var(--chalk-white);padding:.5rem;border-radius:4px;font-size:.8rem;text-align:center}.metric-flag-error{color:var(--error-color);font-weight:700}.toast-notification{position:fixed;bottom:24px;right:24px;background-color:var(--forest-pine);color:var(--white);padding:1rem 1.5rem;border-radius:8px;box-shadow:var(--shadow-md);display:flex;align-items:center;gap:1rem;z-index:9999;transform:translateY(150%);transition:transform .3s cubic-bezier(.175,.885,.32,1.275)}.toast-notification.active{transform:translateY(0)}.toast-icon{background-color:var(--brushed-ochre);color:var(--forest-pine);font-weight:800;width:28px;height:28px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:.85rem}.toast-body h5{font-size:.9rem}.toast-body p{font-size:.78rem;opacity:.8}@media print{body{background:#fff!important;color:#000!important;font-size:11pt!important}.sidebar,.top-bar,.btn,.volume-scale-box,.history-list,#btnCreateNewSpec,.auth-container,#btnLogQuality,#btnEditSpec,#btnAddIngredientRow,.btn-remove-row{display:none!important}.app-layout{display:block!important}.main-viewport{display:block!important;overflow:visible!important}.content-pane{padding:0!important;overflow:visible!important}.detail-layout{display:block!important}.spec-info-card{border:none!important;box-shadow:none!important;padding:0!important;width:100%!important}.data-table th{background-color:#f0f0f0!important;color:#000!important;border-bottom:2px solid #000000!important}.data-table td{border-bottom:1px solid #cccccc!important}}
