:root{--bg:#f5f6f8;--surface:#fff;--surface-strong:#fdfdfd;--text:#333;--muted-text:#596170;--border:#d8dde6;--border-soft:#e9edf3;--accent:#ff4719;--accent-ink:#cc3710;--accent-soft:#fff2ee;--cta:#ff4719;--cta-hover:#cc3710;--focus:#ff471940;--shadow:0 12px 24px #1d283a14}*{box-sizing:border-box}html,body,#root{min-height:100%}body{color:var(--text);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:radial-gradient(circle at 0 0,#fff 0%,#f9fbfd 42%,#f2f4f8 100%),linear-gradient(120deg,#ff47190d,#fff0 38%);margin:0;font-family:Roboto,Segoe UI,sans-serif;line-height:1.45}h1,h2,h3{color:var(--text);margin:0;line-height:1.2}h1{margin-top:.35rem;font-size:clamp(1.8rem,2.8vw,2.5rem)}h2{font-size:clamp(1.15rem,2vw,1.4rem)}p{margin:0}button,input,textarea,select{font:inherit}button{background:var(--cta);color:#fff;cursor:pointer;border:0;border-radius:10px;padding:.62rem .95rem;transition:background-color .2s,transform .2s}button:hover{background:var(--cta-hover);transform:translateY(-1px)}button:disabled{opacity:.6;cursor:not-allowed;transform:none}button:focus-visible,input:focus-visible{outline:3px solid var(--focus);outline-offset:1px}input{border:1px solid var(--border);background:#fff;border-radius:10px;width:100%;padding:.68rem .78rem}.auth-shell{grid-template-columns:minmax(280px,1.1fr) minmax(320px,460px);align-items:stretch;gap:1.2rem;min-height:100vh;padding:1.2rem;display:grid}.auth-intro,.auth-card-wrap{border:1px solid var(--border);box-shadow:var(--shadow);border-radius:20px}.auth-intro{color:#fff;background:linear-gradient(145deg,#28140af7,#3c1e0af2),radial-gradient(circle at 0 0,#ff47198c,#0000 42%);flex-direction:column;justify-content:center;padding:clamp(1.5rem,4vw,3rem);display:flex}.auth-kicker{color:#ffb399;text-transform:uppercase;letter-spacing:.12em;margin:0;font-size:.82rem;font-weight:700}.auth-intro h1{color:#fff;margin:.7rem 0 1rem}.auth-intro p{color:#ffffffdb;max-width:44ch}.auth-card-wrap{background:var(--surface);flex-direction:column;justify-content:center;padding:1.3rem;display:flex}.auth-form{gap:.9rem;display:grid}.auth-form h2{margin:0}.auth-form-subtitle{color:var(--muted-text);margin:-.35rem 0 .2rem;font-size:.92rem}.auth-form label{color:var(--text);gap:.35rem;font-weight:500;display:grid}.auth-form .auth-error{color:#b53200;background:#fff2ee;border:1px solid #ffcab8;border-radius:10px;margin:0;padding:.55rem .7rem;font-size:.88rem}.auth-switch{color:var(--muted-text);align-items:center;gap:.35rem;margin:1rem 0 0;font-size:.92rem;display:flex}.auth-switch button{color:var(--accent);text-underline-offset:2px;background:0 0;border:0;border-radius:0;padding:0;font-weight:600;text-decoration:underline}.auth-switch button:hover{color:var(--accent);background:0 0;transform:none}@media (width<=860px){.auth-shell{grid-template-columns:1fr;min-height:100%}.auth-intro{min-height:220px}}.sidebar{background:var(--surface);border:1px solid var(--border);width:min(250px,100%);box-shadow:var(--shadow);border-radius:18px;padding:1rem .7rem}.sidebar nav ul{gap:.35rem;margin:0;padding:0;list-style:none;display:grid}.sidebar nav ul li{margin:0}.nav-item{text-align:left;width:100%;color:var(--text);background:0 0;border:1px solid #0000;border-radius:10px;padding:.7rem .75rem;font-weight:500}.nav-item:hover{background:var(--accent-soft);color:var(--accent-ink);border-color:#ffcab8}.nav-item.active{color:#fff;background:#ff4719;border-color:#ff4719}.nav-item.disabled,.nav-item:disabled{opacity:.58;cursor:not-allowed}.nav-item:disabled:hover{color:var(--text);background:0 0;border-color:#0000}@media (width<=980px){.sidebar{width:100%}.sidebar nav ul{grid-template-columns:repeat(3,minmax(0,1fr))}.nav-item{text-align:center}}.header{background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow);border-radius:18px;justify-content:space-between;align-items:center;padding:.9rem 1.1rem;display:flex}.header-left{flex-direction:column;gap:.12rem;display:flex}.logo-mark{letter-spacing:.16em;font-size:1.2rem;font-weight:700}.logo-subtitle{color:var(--muted-text);font-size:.82rem}.header-right{align-items:center;gap:.6rem;display:flex}.user-email{background:var(--accent-soft);color:var(--accent-ink);border-radius:999px;align-items:center;padding:.3rem .65rem;font-size:.85rem;display:inline-flex}.header-right button{padding-inline:.85rem}@media (width<=700px){.header{flex-direction:column;align-items:flex-start;gap:.65rem}.header-right{justify-content:space-between;width:100%}}.app-layout{flex-direction:column;max-width:1320px;min-height:100vh;margin:0 auto;padding:1rem;display:flex}.main-content{flex:1;gap:1rem;display:flex}.workspace-main{background:var(--surface-strong);border:1px solid var(--border);min-height:calc(100vh - 124px);box-shadow:var(--shadow);border-radius:18px;flex:1;padding:1.2rem}@media (width<=980px){.app-layout{padding:.7rem}.main-content{flex-direction:column}.workspace-main{min-height:auto}}.dashboard-hero{margin-bottom:1.5rem}.dashboard-kicker{color:var(--accent);letter-spacing:.14em;text-transform:uppercase;margin:0;font-size:.78rem;font-weight:700}.dashboard-subtitle{max-width:52ch;color:var(--muted-text);margin-top:.7rem}.stats-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;margin-bottom:1.5rem;display:grid}.stat-card{background:var(--surface);border:1px solid var(--border);border-radius:16px;padding:1rem}.stat-label{color:var(--muted-text);text-transform:uppercase;letter-spacing:.08em;margin:0;font-size:.82rem}.stat-value{color:var(--text);margin:.25rem 0;font-size:1.95rem;font-weight:700}.stat-meta{color:var(--muted-text);margin:0;font-size:.9rem}.workspace-grid{grid-template-columns:2fr 1.2fr;gap:1rem;display:grid}.panel-card{background:var(--surface);border:1px solid var(--border);border-radius:16px;padding:1rem 1.1rem}.panel-card h2{margin-top:0;margin-bottom:.9rem}.set-list{margin:0;padding:0;list-style:none}.set-list li{border-top:1px solid var(--border-soft);justify-content:space-between;align-items:center;gap:.8rem;padding:.8rem 0;display:flex}.set-list li:first-child{border-top:0;padding-top:0}.status-badge{background:var(--accent-soft);color:var(--accent-ink);border-radius:999px;padding:.3rem .65rem;font-size:.78rem;font-weight:600;display:inline-block}.status-badge.done{color:#287746;background:#e7f6ed}.actions-grid{gap:.7rem;display:grid}.actions-grid button{justify-content:center;width:100%}@media (width<=980px){.stats-grid,.workspace-grid{grid-template-columns:1fr}}.settings-container{padding:0}.settings-header{margin-bottom:2rem}.settings-subtitle{max-width:52ch;color:var(--muted-text);margin-top:.7rem}.settings-card{background:var(--surface);border:1px solid var(--border);border-radius:16px;margin-bottom:2rem;padding:2rem}.settings-card h2{margin-bottom:1.5rem}.add-user-form{grid-template-columns:1fr 1fr auto;align-items:flex-end;gap:1rem;display:grid}.form-group{flex-direction:column;display:flex}.form-group label{color:var(--text);margin-bottom:.5rem;font-size:.875rem;font-weight:500}.form-group input,.form-group select{border:1px solid var(--border);color:var(--text);background:#fff;border-radius:10px;padding:.68rem .78rem;font-size:.95rem;transition:border-color .2s}.form-group input:focus,.form-group select:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--focus);outline:none}.form-group input:disabled,.form-group select:disabled{opacity:.6;cursor:not-allowed}.btn-primary{background:var(--cta);color:#fff;white-space:nowrap;padding:.68rem 1.5rem;font-weight:500}.btn-primary:hover:not(:disabled){background:var(--cta-hover);transform:translateY(-1px)}.btn-primary:disabled{opacity:.6;cursor:not-allowed;transform:none}.btn-secondary{background:var(--border);color:var(--text);cursor:pointer;border:none;border-radius:10px;padding:.62rem .95rem;transition:background-color .2s}.btn-secondary:hover{background:var(--border-soft)}.btn-delete{color:#fff;cursor:pointer;background:#e74c3c;border:none;border-radius:10px;padding:.62rem .95rem;font-size:.875rem;transition:background-color .2s}.btn-delete:hover{background:#c0392b}.btn-danger{color:#fff;cursor:pointer;background:#e74c3c;border:none;border-radius:10px;padding:.62rem .95rem;font-size:.875rem;transition:background-color .2s}.btn-danger:hover{background:#c0392b}.alert{border-radius:10px;margin-bottom:1.5rem;padding:1rem;font-size:.95rem}.alert-error{color:#85470f;background:#ffe74c;border:1px solid #f9c74f}.alert-success{color:#155724;background:#d4edda;border:1px solid #c3e6cb}.users-list{flex-direction:column;gap:1rem;display:flex}.user-item{background:var(--surface-strong);border:1px solid var(--border-soft);border-radius:10px;justify-content:space-between;align-items:center;padding:1rem;transition:background-color .2s;display:flex}.user-item:hover{background:#fafbfc}.user-info{flex:1}.user-email{color:var(--text);margin-bottom:.25rem;font-weight:500}.user-role{color:var(--muted-text);text-transform:capitalize;font-size:.875rem}.user-actions{margin-left:1rem}.delete-confirm{white-space:nowrap;align-items:center;gap:1rem;display:flex}.delete-confirm p{color:var(--text);margin:0;font-size:.875rem}.confirm-buttons{gap:.5rem;display:flex}.confirm-buttons button{padding:.5rem 1rem;font-size:.875rem}.loading-text,.empty-text{color:var(--muted-text);text-align:center;padding:2rem;font-style:italic}@media (width<=768px){.add-user-form{grid-template-columns:1fr}.user-item{flex-direction:column;align-items:flex-start}.user-actions{width:100%;margin-top:1rem;margin-left:0}.user-actions button,.delete-confirm{width:100%}}.docx-preview{color:#1e293b;background:#fff;border:1px solid #e2e8f0;border-radius:8px;max-height:480px;padding:24px 28px;font-family:Times New Roman,serif;font-size:14px;line-height:1.7;overflow-y:auto}.docx-preview p{margin:0 0 8px}.placeholder-chip{color:#cc3710;cursor:pointer;-webkit-user-select:none;user-select:none;background:#fff2ee;border:1px solid #ffcab8;border-radius:4px;padding:1px 6px;font-family:Inter,sans-serif;font-size:12px;font-weight:600;transition:background .15s,border-color .15s;display:inline-block}.placeholder-chip:hover{background:#ffe4d9;border-color:#ff4719}.placeholder-chip--active{color:#fff;background:#ff4719;border-color:#cc3710}.dtm{border-top:1px solid #e2e8f0;margin-top:16px;padding-top:16px}.dtm__header{justify-content:space-between;align-items:center;margin-bottom:14px;display:flex}.dtm__title{color:#1e293b;margin:0;font-size:15px;font-weight:700}.dtm__btn{cursor:pointer;color:#374151;white-space:nowrap;background:#f8fafc;border:1px solid #d1d5db;border-radius:6px;padding:7px 16px;font-size:13px;font-weight:500;transition:background .15s}.dtm__btn:hover:not(:disabled){background:#e2e8f0}.dtm__btn:disabled{opacity:.55;cursor:not-allowed}.dtm__btn--primary{color:#fff;background:#ff4719;border-color:#ff4719}.dtm__btn--primary:hover:not(:disabled){background:#cc3710;border-color:#cc3710}.dtm__btn--ghost{color:#64748b;background:0 0;border:1px dashed #cbd5e1;width:100%;margin-top:8px}.dtm__btn--ghost:hover:not(:disabled){color:#374151;background:#f1f5f9;border-color:#94a3b8}.dtm__form{background:#f8fafc;border:1px solid #e2e8f0;border-radius:10px;margin-bottom:16px;padding:18px}.dtm__form-row{grid-template-columns:1fr 1fr;gap:12px;margin-bottom:16px;display:grid}.dtm__form-label{color:#374151;flex-direction:column;gap:5px;font-size:13px;font-weight:500;display:flex}.dtm__input{background:#fff;border:1px solid #d1d5db;border-radius:6px;outline:none;padding:7px 10px;font-size:13px;transition:border-color .15s}.dtm__input:focus{border-color:#ff4719}.dtm__loading{color:#64748b;padding:8px 0;font-size:13px}.dtm__editor{grid-template-columns:1fr 340px;gap:16px;margin-bottom:16px;display:grid}.dtm__preview-col{flex-direction:column;gap:8px;min-width:0;display:flex}.dtm__preview-hint{color:#64748b;font-size:12px}.dtm__chip-example{color:#cc3710;background:#fff2ee;border:1px solid #ffcab8;border-radius:4px;padding:0 5px;font-size:12px;font-weight:600;display:inline-block}.dtm__panel-col{min-width:0}.dtm__panel-empty{color:#64748b;background:#fff;border:1px dashed #cbd5e1;border-radius:10px;padding:16px;font-size:13px}.dtm__panel-empty p{margin:0 0 12px}.dtm__keys-list{flex-wrap:wrap;gap:6px;margin:0;padding:0;list-style:none;display:flex}.dtm__key-chip{cursor:pointer;background:#f1f5f9;border:1px solid #e2e8f0;border-radius:6px;align-items:center;gap:6px;padding:4px 10px;font-size:12px;transition:all .15s;display:flex}.dtm__key-chip:hover{background:#fff2ee;border-color:#ffcab8}.dtm__key-chip--configured{background:#fff2ee;border-color:#ff4719}.dtm__key-chip-key{color:#cc3710;font-family:monospace;font-weight:600}.dtm__key-chip-label{color:#ff4719;font-weight:500}.dtm__form-actions{border-top:1px solid #e2e8f0;gap:8px;padding-top:12px;display:flex}.dtm__list{flex-direction:column;gap:8px;display:flex}.dtm__tpl-item{background:#fff;border:1px solid #e2e8f0;border-radius:8px;justify-content:space-between;align-items:center;padding:10px 14px;display:flex}.dtm__tpl-name{color:#1e293b;font-size:14px;font-weight:600}.dtm__tpl-count{color:#64748b;background:#f1f5f9;border-radius:12px;padding:2px 10px;font-size:12px}.placeholder-panel{background:#fff;border:1px solid #e2e8f0;border-radius:10px;width:320px;padding:0;position:relative;overflow:hidden;box-shadow:0 4px 24px #0000001a}.placeholder-panel__header{background:#f1f5f9;border-bottom:1px solid #e2e8f0;justify-content:space-between;align-items:center;padding:10px 16px;display:flex}.placeholder-panel__key{color:#cc3710;background:#fff2ee;border-radius:4px;padding:2px 8px;font-family:Inter,monospace;font-size:13px;font-weight:700}.placeholder-panel__close{cursor:pointer;color:#64748b;background:0 0;border:none;border-radius:4px;padding:2px 4px;font-size:16px;line-height:1}.placeholder-panel__close:hover{color:#1e293b;background:#e2e8f0}.placeholder-panel__tabs{border-bottom:1px solid #e2e8f0;display:flex}.placeholder-panel__tab{cursor:pointer;color:#64748b;background:0 0;border:none;border-bottom:2px solid #0000;flex:1;padding:8px 12px;font-size:13px;transition:all .15s}.placeholder-panel__tab.active{color:#ff4719;border-bottom-color:#ff4719;font-weight:600}.placeholder-panel__body{flex-direction:column;gap:12px;padding:14px 16px;display:flex}.placeholder-panel__label{color:#374151;flex-direction:column;gap:4px;font-size:13px;font-weight:500;display:flex}.placeholder-panel__input{border:1px solid #d1d5db;border-radius:6px;outline:none;padding:6px 10px;font-size:13px;transition:border-color .15s}.placeholder-panel__input:focus{border-color:#ff4719}.placeholder-panel__footer{border-top:1px solid #f1f5f9;gap:8px;padding:10px 16px 14px;display:flex}.placeholder-panel__btn{cursor:pointer;color:#374151;background:#f8fafc;border:1px solid #d1d5db;border-radius:6px;flex:1;padding:7px 12px;font-size:13px;font-weight:500;transition:background .15s}.placeholder-panel__btn:hover{background:#e2e8f0}.placeholder-panel__btn--primary{color:#fff;background:#ff4719;border-color:#ff4719}.placeholder-panel__btn--primary:hover{background:#cc3710;border-color:#cc3710}.tsp{max-width:900px;margin:0 auto;padding:28px 32px}.tsp__top{justify-content:space-between;align-items:center;margin-bottom:24px;display:flex}.tsp__title{color:#1e293b;margin:0;font-size:22px;font-weight:800}.tsp__btn{cursor:pointer;color:#374151;background:#f8fafc;border:1px solid #d1d5db;border-radius:7px;padding:8px 18px;font-size:14px;font-weight:600;transition:background .15s}.tsp__btn:hover:not(:disabled){background:#e2e8f0}.tsp__btn:disabled{opacity:.55;cursor:not-allowed}.tsp__btn--primary{color:#fff;background:#ff4719;border-color:#ff4719}.tsp__btn--primary:hover:not(:disabled){background:#cc3710;border-color:#cc3710}.tsp__create-form{background:#f8fafc;border:1px solid #e2e8f0;border-radius:10px;flex-wrap:wrap;align-items:flex-end;gap:12px;margin-bottom:24px;padding:18px;display:flex}.tsp__label{color:#374151;flex-direction:column;flex:1;gap:4px;min-width:180px;font-size:13px;font-weight:500;display:flex}.tsp__input{background:#fff;border:1px solid #d1d5db;border-radius:6px;outline:none;padding:8px 10px;font-size:13px;transition:border-color .15s}.tsp__input:focus{border-color:#ff4719}.tsp__list{flex-direction:column;gap:16px;display:flex}.tsp__set-card{background:#fff;border:1px solid #e2e8f0;border-radius:12px;padding:18px 20px;box-shadow:0 1px 4px #0000000a}.tsp__set-header{justify-content:space-between;align-items:flex-start;margin-bottom:4px;display:flex}.tsp__set-header .tsp__set-header-right{flex-shrink:0;align-items:center;gap:10px;display:flex}.tsp__set-header .tsp__btn--sm{padding:5px 12px;font-size:12px}.tsp__set-name{color:#1e293b;font-size:16px;font-weight:700}.tsp__set-category{color:#64748b;margin-top:2px;font-size:12px}.tsp__set-badge{color:#64748b;white-space:nowrap;background:#f1f5f9;border-radius:12px;padding:2px 10px;font-size:12px}.tsp__loading,.tsp__empty{color:#64748b;padding:16px 0;font-size:14px}.svf{max-width:720px;margin:0 auto;padding:28px 32px}.svf--loading,.svf--error{color:#596170;padding:48px 32px;font-size:15px}.svf__back{margin-bottom:20px}.svf__btn-back{color:#596170;cursor:pointer;background:0 0;border:none;padding:0;font-size:13px;transition:color .15s}.svf__btn-back:hover{color:#ff4719}.svf__header{justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:28px;display:flex}.svf__title{color:#333;margin:0 0 4px;font-size:22px;font-weight:800}.svf__category{color:#596170;font-size:13px}.svf__meta{color:#596170;white-space:nowrap;background:#f1f5f9;border-radius:12px;align-self:flex-start;padding:4px 12px;font-size:12px}.svf__form{flex-direction:column;gap:0;display:flex}.svf__fields{grid-template-columns:1fr 1fr;gap:16px;margin-bottom:28px;display:grid}.svf__field{flex-direction:column;gap:5px;display:flex}.svf__field:has(.svf__textarea){grid-column:1/-1}.svf__label{color:#333;font-size:13px;font-weight:600}.svf__input{color:#333;background:#fff;border:1px solid #d8dde6;border-radius:8px;outline:none;padding:9px 12px;font-size:14px;transition:border-color .15s,box-shadow .15s}.svf__input:focus{border-color:#ff4719;box-shadow:0 0 0 3px #ff47191f}.svf__textarea{resize:vertical;min-height:80px}.svf__select{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%23596170' stroke-width='2'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");background-position:right 10px center;background-repeat:no-repeat;padding-right:30px}.svf__actions{gap:10px;padding-top:8px;display:flex}.svf__btn{cursor:pointer;color:#333;background:#f8fafc;border:1px solid #d8dde6;border-radius:8px;padding:10px 22px;font-size:14px;font-weight:600;transition:background .15s}.svf__btn:hover:not(:disabled){background:#e9edf3}.svf__btn:disabled{opacity:.55;cursor:not-allowed}.svf__btn--primary{color:#fff;background:#ff4719;border-color:#ff4719}.svf__btn--primary:hover:not(:disabled){background:#cc3710;border-color:#cc3710}.svf__error{color:#b53200;background:#fff2ee;border:1px solid #ffcab8;border-radius:8px;margin-top:12px;padding:10px 14px;font-size:13px}.svf__empty{color:#596170;background:#f8fafc;border:1px dashed #d8dde6;border-radius:12px;padding:28px;font-size:14px}.svf__success{text-align:center;padding:48px 24px}.svf__success-icon{color:#fff;background:#ff4719;border-radius:50%;justify-content:center;align-items:center;width:56px;height:56px;margin:0 auto 20px;font-size:24px;font-weight:700;display:flex}.svf__success h2{color:#333;margin:0 0 8px;font-size:20px;font-weight:800}.svf__success p{color:#596170;margin:0 0 24px}.svf__success-actions{justify-content:center;gap:10px;display:flex}
