:root{--bg: #09090b;--bg-subtle: #131316;--card: #18181b;--card-hi: #27272a;--border: #3f3f46;--border-soft: #52525b;--text: #ffffff;--text-strong: #ffffff;--dim: #a1a1aa;--faint: #71717a;--primary: #a3e635;--primary-hover: #bef264;--primary-tint: rgba(163, 230, 53, .12);--primary-line: rgba(163, 230, 53, .45);--on-primary: #1a2e05;--danger: #f87171;--danger-strong: #fca5a5;--danger-tint: rgba(248, 113, 113, .12);--danger-line: rgba(248, 113, 113, .45);--warn: #fb923c;--warn-strong: #fdba74;--warn-tint: rgba(251, 146, 60, .12);--warn-line: rgba(251, 146, 60, .4);--green: #4ade80;--green-strong: #86efac;--green-tint: rgba(74, 222, 128, .12);--green-line: rgba(74, 222, 128, .45);--info: #38bdf8;--info-tint: rgba(56, 189, 248, .12);--info-line: rgba(56, 189, 248, .4);--help: #c084fc;--help-tint: rgba(192, 132, 252, .12);--help-line: rgba(192, 132, 252, .4);--secondary: #27272a;--on-secondary: #d4d4d8;--contrast: #ffffff;--on-contrast: #09090b;--primary-rgb: 163, 230, 53;--danger-rgb: 248, 113, 113;--warn-rgb: 251, 146, 60;--green-rgb: 74, 222, 128;--info-rgb: 56, 189, 248;--card-rgb: 24, 24, 27;--shadow-rgb: 0, 0, 0;--radius: 8px;--radius-sm: 6px;--radius-pill: 28px;--radius-xl: 12px;--speed: .2s;--shadow-sm: 0 1px 3px rgba(0, 0, 0, .4);--shadow-md: 0 4px 14px rgba(0, 0, 0, .45);--shadow-lg: 0 18px 44px rgba(0, 0, 0, .55);--font: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;color-scheme:dark}:root[data-theme=light]{--bg: #ffffff;--bg-subtle: #f1f5f9;--card: #ffffff;--card-hi: #f8fafc;--border: #e2e8f0;--border-soft: #cbd5e1;--text: #0f172a;--text-strong: #1e293b;--dim: #475569;--faint: #64748b;--primary: #65a30d;--primary-hover: #4d7c0f;--primary-tint: rgba(101, 163, 13, .1);--primary-line: rgba(101, 163, 13, .4);--on-primary: #ffffff;--danger: #dc2626;--danger-strong: #b91c1c;--danger-tint: rgba(220, 38, 38, .08);--danger-line: rgba(220, 38, 38, .35);--warn: #b45309;--warn-strong: #92400e;--warn-tint: rgba(217, 119, 6, .1);--warn-line: rgba(217, 119, 6, .35);--green: #16a34a;--green-strong: #15803d;--green-tint: rgba(22, 163, 74, .09);--green-line: rgba(22, 163, 74, .45);--info: #0891b2;--primary-rgb: 101, 163, 13;--danger-rgb: 220, 38, 38;--warn-rgb: 217, 119, 6;--green-rgb: 22, 163, 74;--info-rgb: 8, 145, 178;--card-rgb: 255, 255, 255;--shadow-rgb: 15, 23, 42;--shadow-sm: 0 1px 3px 0 rgba(15, 23, 42, .06), 0 1px 2px -1px rgba(15, 23, 42, .06);--shadow-md: 0 4px 6px -1px rgba(15, 23, 42, .07), 0 2px 4px -2px rgba(15, 23, 42, .05);--shadow-lg: 0 10px 15px -3px rgba(15, 23, 42, .08), 0 4px 6px -4px rgba(15, 23, 42, .04);--help: #7c3aed;--help-tint: rgba(124, 58, 237, .08);--help-line: rgba(124, 58, 237, .35);--secondary: #f1f5f9;--on-secondary: #334155;--contrast: #09090b;--on-contrast: #ffffff;color-scheme:light}*{box-sizing:border-box}html,body,#root{height:100%;height:100dvh;max-height:100dvh;overflow:hidden}body{margin:0;background:var(--bg);color:var(--text);font-family:var(--font);font-size:14px;line-height:1.5;-webkit-font-smoothing:antialiased;overflow:hidden}*{scrollbar-width:none!important;-ms-overflow-style:none!important}*::-webkit-scrollbar,::-webkit-scrollbar{display:none!important;width:0!important;height:0!important;background:transparent!important}.app{display:flex;flex-direction:column;height:100%;height:100dvh;max-height:100dvh;overflow:hidden}.topbar{display:flex;align-items:center;gap:14px;padding:12px 24px;background:var(--card);border-bottom:1px solid var(--border);box-shadow:var(--shadow-sm);flex:none;z-index:10}.topbar__mark{width:36px;height:36px;border-radius:10px;background:linear-gradient(135deg,var(--primary),var(--primary-hover));display:grid;place-items:center;color:var(--on-primary);box-shadow:0 2px 6px rgba(var(--primary-rgb),.3);flex:none}.topbar__title{font-size:16px;font-weight:700;color:var(--text);letter-spacing:-.01em}.topbar__sub{font-size:12px;color:var(--faint);margin-top:1px}.topbar__spacer{flex:1}.layout{display:grid;grid-template-columns:350px 1fr;flex:1;min-height:0;overflow:hidden}.sidebar{background:var(--card);border-right:1px solid var(--border);padding:24px 18px 40px;overflow-x:hidden;overflow-y:auto;display:flex;flex-direction:column;gap:24px;min-width:0;max-width:100%;box-sizing:border-box}.main{background:var(--bg);overflow-y:auto;padding:32px 40px 80px;min-width:0}.main__head{margin-bottom:24px}.main__title{font-size:26px;font-weight:800;color:var(--text);letter-spacing:-.02em;margin:0}.main__desc{color:var(--dim);font-size:14px;margin:6px 0 0}.label{font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--dim);margin-bottom:10px}.segmented{display:grid;grid-auto-flow:column;grid-auto-columns:1fr;gap:3px;background:var(--bg-subtle);border:1px solid var(--border);border-radius:var(--radius);padding:3px;max-width:100%;box-sizing:border-box}.segmented__btn{display:flex;align-items:center;justify-content:center;gap:7px;padding:8px 10px;border:0;border-radius:9px;background:transparent;color:var(--dim);font-size:12.5px;font-weight:600;white-space:nowrap;transition:all var(--speed) ease}.segmented__btn:hover:not(.is-active){color:var(--text);background:rgba(var(--card-rgb),.6)}.segmented__btn.is-active{background:var(--card);color:var(--text);box-shadow:var(--shadow-sm);font-weight:700}.segmented__btn:disabled{opacity:.4;cursor:not-allowed}.segmented--sm .segmented__btn{padding:6px 8px;font-size:12px}.dropzone{border:1.5px dashed var(--border-soft);border-radius:var(--radius);background:var(--card-hi);padding:24px 18px;text-align:center;color:var(--dim);transition:all var(--speed) ease;cursor:pointer;display:block;width:100%}.dropzone:hover,.dropzone.is-over{border-color:var(--primary);background:var(--primary-tint);color:var(--primary)}.dropzone.is-done{border-color:var(--primary-line);background:var(--primary-tint);color:var(--text);font-weight:600}.dropzone.is-done svg{color:var(--green)}.dropzone.is-error{border-color:var(--danger-line);background:var(--danger-tint);color:var(--danger)}.dropzone__title{font-size:13.5px;font-weight:650;margin-top:8px}.dropzone__hint{font-size:11.5px;color:var(--faint);margin-top:3px}.dropzone.is-done .dropzone__hint{color:var(--dim)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;width:100%;padding:11px 14px;border-radius:var(--radius-pill);border:1px solid var(--border);background:var(--card);color:var(--text);font-size:13.5px;font-weight:600;box-shadow:var(--shadow-sm);transition:all var(--speed) ease}.btn:hover:not(:disabled){background:var(--card-hi);border-color:var(--border-soft);box-shadow:var(--shadow-md)}.btn:disabled{opacity:.45;cursor:not-allowed;box-shadow:none}.btn--primary{background:linear-gradient(135deg,var(--primary),var(--primary-hover));color:var(--on-primary);border-color:var(--primary);box-shadow:0 2px 6px rgba(var(--primary-rgb),.28)}.btn--primary:hover:not(:disabled){background:linear-gradient(135deg,var(--primary-hover),var(--primary));border-color:var(--primary-hover);color:var(--on-primary);box-shadow:0 4px 10px rgba(var(--primary-rgb),.35)}.btn--ghost{background:transparent;box-shadow:none;border-color:transparent}.btn--ghost:hover:not(:disabled){background:var(--bg-subtle);border-color:var(--border)}.btn--auto{width:auto}.btn--sm{padding:7px 11px;font-size:12px}.btn--danger{color:var(--danger);border-color:var(--danger-line);background:var(--danger-tint);box-shadow:none}.btn--danger:hover:not(:disabled){background:var(--danger-tint);border-color:var(--danger-line)}.icon-btn{background:transparent;border:0;padding:5px;border-radius:6px;color:var(--faint);display:grid;place-items:center;transition:all var(--speed) ease}.icon-btn:hover{color:var(--danger);background:var(--danger-tint)}.field{display:block;margin-bottom:12px}.field__label{display:block;font-size:11.5px;color:var(--dim);margin-bottom:5px;font-weight:600}.input,.textarea,.select{width:100%;background:var(--card);border:1px solid var(--border-soft);border-radius:var(--radius-sm);padding:8px 10px;font-size:13px;color:var(--text);outline:none;transition:all var(--speed) ease}.input:focus,.textarea:focus,.select:focus{border-color:var(--primary);box-shadow:0 0 0 3px rgba(var(--primary-rgb),.12)}.input::placeholder,.textarea::placeholder{color:var(--faint)}.textarea{resize:vertical;line-height:1.6}.input--sm{padding:6px 8px;font-size:12.5px}.checkbox{display:flex;align-items:center;gap:8px;font-size:12.5px;color:var(--dim);cursor:pointer;padding:3px 0;font-weight:500}.checkbox input{accent-color:var(--primary);width:15px;height:15px;cursor:pointer}.disclosure{border-top:1px solid var(--border);padding-top:16px}.disclosure__toggle{display:flex;align-items:center;justify-content:space-between;width:100%;background:none;border:0;padding:0 0 12px;color:var(--dim);font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.disclosure__toggle:hover{color:var(--text)}.note{font-size:12px;color:var(--faint);line-height:1.55}.note--warn{color:var(--warn)}.note--error{color:var(--danger)}.badge{display:inline-flex;align-items:center;gap:8px;padding:9px 12px;border-radius:var(--radius-sm);font-size:11.5px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;width:100%;justify-content:center}.badge--ready{background:var(--green-tint);color:var(--green-strong);border:1px solid var(--green-line)}.badge--review{background:rgba(var(--warn-rgb),.1);color:var(--warn);border:1px solid rgba(var(--warn-rgb),.35)}.items{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:20px;align-items:start}.item{border:1px solid var(--border);border-radius:var(--radius);background:var(--card);padding:18px;display:flex;flex-direction:column;gap:14px;box-shadow:var(--shadow-sm);transition:all var(--speed) ease}.item:hover{border-color:var(--border-soft);box-shadow:var(--shadow-md)}.item__head{display:flex;align-items:center;justify-content:space-between}.item__name{font-size:11px;font-weight:750;letter-spacing:.09em;text-transform:uppercase;color:var(--dim);background:none;border:0;padding:0;text-align:left;width:100%}.item__name:focus{outline:none;color:var(--text)}.item__body{min-height:165px;display:flex;flex-direction:column;gap:12px}.item__thumb{width:100%;height:150px;object-fit:contain;border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--card-hi)}.item__filemeta{display:flex;align-items:center;gap:8px;font-size:12.5px;color:var(--dim);word-break:break-all}.item-add{border:1.5px dashed var(--border-soft);border-radius:var(--radius);background:var(--card);color:var(--faint);min-height:200px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;font-size:13.5px;font-weight:600;box-shadow:var(--shadow-sm);transition:all var(--speed) ease}.item-add:hover{border-color:var(--primary);color:var(--primary);background:var(--primary-tint)}.spinner{width:15px;height:15px;flex:none;border:2px solid rgba(var(--card-rgb),.4);border-top-color:var(--on-primary);border-radius:50%;animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.busy{display:flex;align-items:center;gap:10px;font-size:12.5px;color:var(--dim)}.modal-backdrop{position:fixed;inset:0;background:rgba(var(--shadow-rgb),.45);display:flex;align-items:center;justify-content:center;padding:32px;z-index:60;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.modal{background:var(--card);border:1px solid var(--border);border-radius:18px;width:min(940px,100%);max-height:100%;display:flex;flex-direction:column;overflow:hidden;box-shadow:var(--shadow-lg)}.modal__head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:18px 24px;border-bottom:1px solid var(--border);flex:none}.modal__title{font-size:17px;font-weight:700;color:var(--text);margin:0}.modal__sub{font-size:12.5px;color:var(--faint);margin:3px 0 0}.modal__body{overflow-y:auto;padding:22px 24px;display:flex;flex-direction:column;gap:20px;background:var(--card-hi)}.modal__foot{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 24px;border-top:1px solid var(--border);flex:none;background:var(--card)}.modal__foot .btn{width:auto}.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:0 14px}.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:0 10px}.part-block{border:1px solid var(--border);border-radius:var(--radius-sm);padding:16px;background:var(--card);box-shadow:var(--shadow-sm)}.part-block__head{display:flex;gap:10px;align-items:center;margin-bottom:14px}.q-row{display:grid;gap:8px;align-items:start;padding:8px 0;border-top:1px solid var(--border)}.q-row--sub{padding-left:26px}.q-row__ctl{display:flex;gap:2px}.q-head{display:grid;gap:8px;font-size:10.5px;letter-spacing:.07em;text-transform:uppercase;color:var(--faint);padding-bottom:6px}.or-tag{font-size:10.5px;letter-spacing:.1em;color:var(--warn);padding:6px 0 2px;font-weight:700}.preview{display:flex;flex-direction:column;align-items:center;gap:26px;padding:24px 20px 60px;background:var(--border-soft);border-radius:var(--radius)}.preview__page{box-shadow:0 20px 45px rgba(var(--shadow-rgb),.26),0 6px 16px rgba(var(--shadow-rgb),.14);border:1.5px solid var(--dim);border-radius:4px;transform-origin:top center;background:var(--card)}.preview__caption{font-size:12px;color:var(--faint);letter-spacing:.05em;font-weight:500}.preview__empty{text-align:center;color:var(--faint);padding:90px 20px}.export-stage{position:fixed;top:0;left:0;width:794px;height:1123px;overflow:hidden;pointer-events:none;z-index:-1;opacity:0}.export-stage>*{position:absolute;top:0;left:0}.toast{position:fixed;bottom:22px;left:50%;transform:translate(-50%);background:var(--text);border:1px solid var(--text);color:var(--on-primary);padding:10px 20px;border-radius:999px;font-size:13px;font-weight:550;box-shadow:0 10px 25px rgba(var(--shadow-rgb),.2);z-index:80;display:flex;align-items:center;gap:10px}.toast--error{background:var(--danger-strong);border-color:var(--danger-strong);color:var(--on-primary)}.topbar__drawer-btn,.drawer-header,.drawer-backdrop{display:none}.sidebar-container{display:contents}@media(max-width:900px){.layout{display:block;width:100%}.topbar__drawer-btn{display:inline-flex;align-items:center;gap:6px;padding:6px 13px;font-size:12px;font-weight:750;background:var(--primary-tint);color:var(--primary);border:1px solid var(--primary-line);border-radius:8px;cursor:pointer;box-shadow:0 1px 2px rgba(var(--primary-rgb),.1);transition:all var(--speed) ease}.topbar__drawer-btn:hover{background:var(--primary-tint);border-color:var(--primary-line)}.drawer-backdrop{display:block;position:fixed;inset:0;background:rgba(var(--shadow-rgb),.52);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);z-index:95;animation:fadeIn var(--speed) ease}.sidebar-container{display:flex;flex-direction:column;position:fixed;top:0;left:0;bottom:0;width:min(360px,88vw);background:var(--card);z-index:100;box-shadow:0 20px 45px rgba(var(--shadow-rgb),.35);transform:translate(-100%);transition:transform var(--speed) cubic-bezier(.16,1,.3,1);overflow:hidden}.sidebar-container--open{transform:translate(0)}.drawer-header{display:flex;align-items:center;justify-content:space-between;padding:16px 18px;border-bottom:1px solid var(--border);background:var(--card-hi);flex:none}.drawer-title{font-size:14px;font-weight:800;color:var(--text)}.drawer-close{width:32px;height:32px;display:grid;place-items:center;border-radius:8px;border:1px solid var(--border-soft);background:var(--card);font-size:14px;font-weight:700;color:var(--text-strong);cursor:pointer}.sidebar{border-right:0;border-bottom:0;height:100%;overflow-y:auto;padding:16px 16px 40px}.main{padding:20px 16px 80px}}.mobile-nav{display:none}@media(max-width:900px){.app{padding-bottom:68px}.app:has(.flutter-ui){padding-bottom:0}.mobile-nav{display:grid;grid-template-columns:repeat(3,1fr);position:fixed;bottom:0;left:0;right:0;height:64px;background:rgba(var(--card-rgb),.96);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-top:1px solid var(--border);box-shadow:0 -4px 16px rgba(var(--shadow-rgb),.08);z-index:85;padding:0 6px;align-items:center}.mobile-nav__btn{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;background:none;border:none;padding:6px 4px;color:var(--faint);font-size:11px;font-weight:650;border-radius:12px;cursor:pointer;transition:all var(--speed) ease;height:52px}.mobile-nav__btn:hover{color:var(--text);background:var(--bg-subtle)}.mobile-nav__btn--active{color:var(--primary);background:var(--primary-tint);font-weight:800}.mobile-nav__btn--active svg{stroke-width:2.2}.mobile-nav__btn--action{color:var(--on-primary);background:linear-gradient(135deg,var(--primary),var(--primary-hover));box-shadow:0 3px 8px rgba(var(--primary-rgb),.35)}.mobile-nav__btn--action:hover:not(:disabled){background:linear-gradient(135deg,var(--primary-hover),var(--primary-hover));color:var(--on-primary)}.mobile-nav__btn--action:disabled{opacity:.5;background:var(--border-soft);color:var(--faint);box-shadow:none;cursor:not-allowed}.mobile-nav__btn--action span{color:inherit}}.preview__warn{max-width:794px;text-align:center;border:1px solid rgba(var(--warn-rgb),.35);background:var(--warn-tint);color:var(--warn-strong);border-radius:var(--radius-sm);padding:10px 16px;margin:0;font-size:12.5px}.chip-row{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}.chip{padding:5px 12px;border-radius:999px;border:1px solid var(--border-soft);background:var(--bg-subtle);color:var(--text-strong);font-size:12px;font-weight:600;cursor:pointer;transition:all var(--speed) ease}.chip:hover{border-color:var(--faint);background:var(--border);color:var(--text)}.chip--on{background:var(--primary);border-color:var(--primary);color:var(--on-primary);font-weight:700;box-shadow:0 1px 3px rgba(var(--primary-rgb),.3)}.preview__toolbar{display:flex;align-items:center;gap:16px;flex-wrap:wrap;margin-bottom:14px;padding:10px 16px;background:var(--card);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-sm);width:100%;max-width:900px}.preview__hint{flex:1;min-width:200px;font-size:12px;color:var(--faint)}.preview__sizer{display:flex;align-items:center;gap:7px}.preview__sizer-label{font-size:10.5px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--faint)}.preview__sizer-value{min-width:42px;text-align:center;font-size:12.5px;font-weight:700;color:var(--text)}.width-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:6px}.width-field{display:flex;flex-direction:column;gap:4px}.width-field__label{font-size:11px;font-weight:650;letter-spacing:.05em;text-transform:uppercase;color:var(--dim)}.width-field__row{display:flex;align-items:center;border:1px solid var(--border-soft);background:var(--card-hi);border-radius:8px;overflow:hidden;height:34px;transition:all var(--speed) ease}.width-field__row:focus-within{border-color:var(--primary);box-shadow:0 0 0 3px rgba(var(--primary-rgb),.12);background:var(--card)}.width-field__step{width:28px;height:100%;border:0;background:var(--bg-subtle);color:var(--text-strong);font-size:16px;font-weight:700;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all var(--speed) ease}.width-field__step:hover{background:var(--border);color:var(--primary)}.width-field__input{flex:1;min-width:0;height:100%;border:0;background:transparent;color:var(--text);font-size:13px;font-weight:700;text-align:center;padding:0 4px;-moz-appearance:textfield}.width-field__input::-webkit-outer-spin-button,.width-field__input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.width-field__input:focus{outline:none}.field__note{margin:6px 0 0;font-size:11px;line-height:1.5;color:var(--faint);word-break:break-word}.type-row{display:flex;align-items:center;gap:6px;margin-top:6px;max-width:100%;box-sizing:border-box}.type-row__value{min-width:42px;text-align:center;font-size:12px;font-weight:700;color:var(--text)}.type-row__gap{flex:1}.chip--sq{width:30px;padding:5px 0;text-align:center;border-radius:8px;flex:none}.linkish{background:none;border:0;padding:0;color:var(--green);font:inherit;text-decoration:underline;cursor:pointer}.linkish:hover{color:var(--green-line)}.colour-input{width:40px;height:30px;padding:0;border:1px solid var(--border-soft);border-radius:var(--radius-sm);background:transparent;cursor:pointer}.colour-input::-webkit-color-swatch-wrapper{padding:3px}.colour-input::-webkit-color-swatch{border:0;border-radius:5px}.preview__clip{display:flex;flex-direction:column;gap:7px}.preview__clip-head{font-weight:600}.preview__clip-list{font-size:12.5px}.preview__clip-list b{color:var(--danger)}.preview__clip-why{font-size:11.5px;opacity:.75;line-height:1.55}.preview__clip-actions{display:flex;gap:6px;flex-wrap:wrap;margin-top:2px}.preview__grid{display:grid;gap:26px 20px;justify-content:center;align-items:start;width:100%}.group-card{flex:none;border:1px solid var(--border);border-radius:var(--radius);background:var(--card);box-shadow:var(--shadow-sm);overflow:hidden}.group-card+.group-card{margin-top:-14px}.group-card:has(.group-card__body){box-shadow:var(--shadow-md)}.group-card__head{display:flex;align-items:center;gap:10px;width:100%;padding:11px 12px;background:none;border:0;color:var(--text);cursor:pointer;text-align:left}.group-card__head:hover{background:var(--card-hi)}.group-card__icon{display:grid;place-items:center;width:30px;height:30px;flex:none;border-radius:var(--radius-sm);background:var(--primary-tint);color:var(--primary)}.group-card__text{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1}.group-card__title{font-size:13px;font-weight:600;color:var(--text)}.group-card__summary{font-size:11.5px;color:var(--faint);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.group-card__body{padding:12px 12px 16px;border-top:1px solid var(--border);background:var(--card-hi)}.item__details{margin:4px 0 10px;box-shadow:none}.item__details .group-card__body{max-height:420px;overflow-y:auto}.modal.modal--proof{width:min(1240px,96vw);max-height:94vh}.modal__proof{display:grid;grid-template-columns:570px minmax(320px,1fr);gap:24px;align-items:start;padding:20px 24px;background:var(--bg-subtle);overflow-y:auto}.modal__proof-page{display:flex;flex-direction:column;align-items:center;gap:12px;padding:16px;border-radius:var(--radius);background:var(--border-soft);box-shadow:inset 0 2px 6px rgba(var(--shadow-rgb),.08)}.modal__proof-scale{width:556px;height:786px;overflow:hidden;border:1.5px solid var(--dim);border-radius:4px;box-shadow:0 16px 36px rgba(var(--shadow-rgb),.22);background:var(--card);position:relative}.modal__proof-scale>.sheet{transform:scale(.7);transform-origin:top left;width:794px;min-height:1123px}.modal__proof-caption{text-align:center;font-size:11.5px;letter-spacing:.06em;font-weight:600;text-transform:uppercase;color:var(--dim)}.modal__tools{min-width:0;background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:20px 18px;box-shadow:var(--shadow-sm);max-height:820px;overflow-y:auto;display:flex;flex-direction:column;gap:16px}@media(max-width:1200px){.modal__proof{grid-template-columns:minmax(0,1fr)}.modal__proof-scale{width:100%;max-width:556px}.modal__tools{max-height:none}}.modal__proof-note{max-width:556px;margin-bottom:2px;padding:10px 12px;border-radius:var(--radius-sm);background:var(--card);border:1px solid var(--border);line-height:1.6}.modal__proof-note.note--warn{border-color:#b4530959;background:#b453090f}.sheet__half-empty{display:grid;place-items:center;height:100%;color:var(--border-soft);font-family:Inter,sans-serif;font-size:12px;letter-spacing:.08em;text-transform:uppercase}.half-actions{display:flex;gap:8px;margin-top:10px}.half-action{display:flex;flex-direction:column;align-items:center;gap:4px;flex:1;padding:9px 6px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--card);color:var(--dim);cursor:pointer;font-size:11px;font-weight:600;letter-spacing:.04em;transition:border-color .14s ease,color .14s ease,background .14s ease}.half-action:hover{border-color:var(--primary-line);color:var(--primary);background:var(--primary-tint)}.half-action--on{border-color:var(--primary);color:var(--primary);background:var(--primary-tint)}.btn--blocked{opacity:.5;cursor:not-allowed;filter:grayscale(.35)}.btn--blocked:hover{filter:grayscale(.35)}.input--invalid{border-color:var(--danger);background:var(--danger-tint)}.input--invalid:focus{border-color:var(--danger)}.icon-btn:disabled{opacity:.32;cursor:not-allowed}.icon-btn:disabled:hover{background:none}.history-btn{display:inline-flex;align-items:center;gap:6px;padding:6px 10px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--card);color:var(--dim);font-size:12px;font-weight:500;cursor:pointer;transition:border-color .14s ease,color .14s ease,background .14s ease}.history-btn:hover:not(:disabled){border-color:var(--primary-line);color:var(--primary);background:var(--primary-tint)}.history-btn:disabled{opacity:.4;cursor:not-allowed}.total-box{margin-top:14px;padding:12px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--card-hi)}.total-box__value{display:flex;align-items:center;gap:12px}.total-box__value .field__label{margin:0;white-space:nowrap}.total-box__input{width:96px;font-weight:700;font-size:15px;text-align:center}.total-box__options{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}.total-box__options .chip:disabled{opacity:.45;cursor:not-allowed}.home{min-height:100vh;background:var(--bg)}.home__bar{display:flex;align-items:center;gap:12px;padding:14px 32px;background:var(--card);border-bottom:1px solid var(--border);position:sticky;top:0;z-index:10}.home__mark{display:grid;place-items:center;width:30px;height:30px;border-radius:var(--radius-sm);background:var(--primary);color:var(--card)}.home__brand{font-size:15px;font-weight:700;letter-spacing:-.01em}.home__search{display:flex;align-items:center;gap:8px;margin-left:auto;padding:7px 12px;width:min(280px,40vw);border:1px solid var(--border);border-radius:999px;background:var(--bg-subtle);color:var(--faint)}.home__search:focus-within{border-color:var(--primary-line);background:var(--card)}.home__search input{flex:1;min-width:0;border:0;background:none;outline:none;font-size:13px;color:var(--text)}.home__main{max-width:1080px;margin:0 auto;padding:40px 32px 80px}.home__greet h1{font-size:30px;font-weight:800;letter-spacing:-.025em;margin:0}.home__greet p{margin:6px 0 0;font-size:14px;color:var(--faint)}.resume{margin-top:26px;padding:16px;border:1px solid var(--primary-line);border-radius:var(--radius);background:var(--primary-tint)}.resume__label{font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--primary)}.resume__row{display:flex;align-items:center;gap:14px;margin-top:12px}.resume__icon{display:grid;place-items:center;width:42px;height:42px;flex:none;border-radius:var(--radius-sm);background:var(--card);color:var(--primary);border:1px solid var(--primary-line)}.resume__text{flex:1;min-width:0}.resume__title{font-size:15px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.resume__meta{font-size:12.5px;color:var(--dim);margin-top:2px}.resume__arrow{display:inline-flex;transform:rotate(180deg)}.tools{margin-top:38px}.tools__head{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:16px}.tools__head h2{font-size:17px;font-weight:700;margin:0}.tools__filters{display:flex;gap:6px;flex-wrap:wrap}.tools__empty{font-size:14px;color:var(--faint)}.tools__grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(268px,1fr));gap:16px}.tool{display:flex;flex-direction:column;align-items:flex-start;gap:8px;padding:18px;text-align:left;border:1px solid var(--border);border-radius:var(--radius);background:var(--card);box-shadow:var(--shadow-sm);cursor:pointer;transition:transform .16s ease,box-shadow .16s ease,border-color .16s ease}.tool:hover:not(:disabled){transform:translateY(-2px);box-shadow:var(--shadow-md);border-color:var(--border-soft)}.tool__icon{display:grid;place-items:center;width:42px;height:42px;border-radius:var(--radius-sm);margin-bottom:2px}.tool--indigo .tool__icon{background:rgba(var(--primary-rgb),.1);color:var(--primary)}.tool--green .tool__icon{background:rgba(var(--green-rgb),.1);color:var(--green)}.tool--amber .tool__icon{background:rgba(var(--warn-rgb),.1);color:var(--warn)}.tool--rose .tool__icon{background:#e11d4817;color:var(--danger)}.tool--cyan .tool__icon{background:rgba(var(--info-rgb),.1);color:var(--info)}.tool__name{font-size:14.5px;font-weight:700;line-height:1.35}.tool__blurb{font-size:12.5px;color:var(--faint);line-height:1.6}.tool__foot{display:flex;align-items:center;gap:8px;margin-top:auto;padding-top:10px;font-size:11px}.tool__status{font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--faint)}.tool__status--live{color:var(--green-strong)}.tool__status--live:before{content:"";display:inline-block;width:6px;height:6px;margin-right:6px;border-radius:50%;background:var(--green);vertical-align:middle}.tool__subject{margin-left:auto;color:var(--faint)}.tool--soon{cursor:default;box-shadow:none;background:var(--bg-subtle)}.tool--soon .tool__icon{filter:grayscale(1);opacity:.55}.tool--soon .tool__name{color:var(--dim)}.topbar__back{display:inline-flex;align-items:center;gap:6px;margin-right:4px;padding:6px 10px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--card);color:var(--dim);font-size:12.5px;font-weight:600;cursor:pointer}.topbar__back:hover{border-color:var(--primary-line);color:var(--primary);background:var(--primary-tint)}@media(max-width:700px){.home__bar{padding:12px 16px}.home__main{padding:28px 16px 60px}.home__greet h1{font-size:24px}}.chem{min-height:100vh;background:var(--bg)}.chem__modules{display:flex;gap:6px;margin-left:auto;flex-wrap:wrap}.chem__module{display:inline-flex;align-items:center;gap:6px;padding:5px 11px;border-radius:999px;border:1px solid var(--border);font-size:12px;color:var(--faint)}.chem__module--on{border-color:var(--primary-line);background:var(--primary-tint);color:var(--primary);font-weight:600}.chem__module em{font-style:normal;font-size:9.5px;letter-spacing:.06em;text-transform:uppercase;opacity:.7}.chem__main{max-width:1080px;margin:0 auto;padding:28px 32px 70px}.prep{display:grid;grid-template-columns:minmax(0,1fr);gap:20px;align-items:start}@media(min-width:900px){.prep{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}}@media(min-width:1280px){.prep{grid-template-columns:minmax(360px,.8fr) minmax(0,1.2fr)}}.prep__panel,.prep__result{padding:20px;border:1px solid var(--border);border-radius:var(--radius);background:var(--card);box-shadow:var(--shadow-sm)}.prep__result{position:sticky;top:88px}.prep__heading{font-size:12px;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:var(--faint);margin:0 0 12px;display:flex;align-items:center;gap:10px}.prep__heading--rule{margin-top:20px;padding-top:16px;border-top:1px solid var(--border)}.prep__presets{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px}.prep__headline{display:flex;align-items:baseline;gap:10px}.prep__number{font-size:44px;font-weight:800;letter-spacing:-.03em;color:var(--green-strong);line-height:1}.prep__unit{font-size:15px;font-weight:600;color:var(--dim)}.prep__sub{margin:8px 0 0;font-size:13px;color:var(--faint)}.prep__facts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:18px 0 0}.prep__facts dt{font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--faint)}.prep__facts dd{margin:3px 0 0;font-size:14px;font-weight:600}.prep__steps{margin:0 0 14px;padding-left:20px}.prep__steps li{font-size:13px;line-height:1.75;color:var(--dim)}@media(max-width:900px){.prep{grid-template-columns:minmax(0,1fr)}.prep__result{position:static}.chem__main{padding:20px 16px 60px}}@media(max-width:640px){.grid-2,.grid-3,.width-grid,.prep__facts{grid-template-columns:minmax(0,1fr)!important}.grid-2>*,.grid-3>*{min-width:0}.modal-backdrop{padding:0}.modal{border-radius:0;width:100%;max-height:100%;height:100%}.modal__head{flex-wrap:wrap;gap:10px;padding:14px 16px}.modal__head-actions{width:100%;justify-content:flex-end}.modal__body{padding:16px}.modal__foot{flex-wrap:wrap;gap:8px;padding:12px 16px}.modal__foot>*{flex:1 1 auto}.modal__foot .btn{width:100%;justify-content:center}.q-head{display:none}.q-row,.q-row--sub{grid-template-columns:56px minmax(0,1fr)!important;gap:8px;padding:12px 0}.q-row>input:first-child{grid-column:1}.q-row>textarea{grid-column:2}.q-row>input:not(:first-child){grid-column:2}.q-row__ctl{grid-column:2;justify-content:flex-end}.q-row--sub{padding-left:14px}.part-block{padding:12px}.part-block__head{flex-wrap:wrap}.part-block__head input{max-width:none!important;width:100%}.modal__proof{grid-template-columns:minmax(0,1fr)}.modal__proof-page{padding:8px}.modal__proof-scale{width:100%;max-width:100%;height:auto;aspect-ratio:794 / 1123}.modal__proof-scale>.sheet{transform:scale(.42)}.modal__tools{max-height:none}.icon-btn{min-width:34px;min-height:34px}.segmented__btn{min-height:38px}.chip{padding:8px 13px}.prep__panel,.prep__result{padding:16px}.prep__number{font-size:36px}.toast{inset:14px 12px auto;transform:none;justify-content:center;text-align:center;border-radius:var(--radius)}}.flutter-ui{display:flex;flex-direction:column;height:calc(100vh - 54px);width:100%;max-width:100vw;overflow:hidden!important;overflow-x:hidden!important;background:var(--card-hi);position:relative;box-sizing:border-box}.flutter-ui--fullscreen .flutter-preview-pane{height:100%!important;flex:1!important}.flutter-ui--fullscreen .flutter-tools-pane{display:none!important}.flutter-preview-pane{flex:1;min-height:0;width:100%;max-width:100vw;background:var(--bg-subtle);display:flex;flex-direction:column;overflow:hidden!important;overflow-x:hidden!important;overflow-y:hidden!important;position:relative;box-sizing:border-box}.flutter-preview-bar{display:flex;align-items:center;justify-content:space-between;padding:6px 14px;background:var(--card);border-bottom:1px solid var(--border);z-index:10;flex:none;width:100%;box-sizing:border-box}.flutter-icon-btn{display:inline-flex;align-items:center;justify-content:center;position:relative;width:32px;height:32px;min-width:32px;padding:0;border-radius:8px;background:var(--card-hi);border:1px solid var(--border-soft);color:var(--dim);cursor:pointer;transition:all var(--speed) ease;touch-action:manipulation;-webkit-tap-highlight-color:transparent}.flutter-icon-btn:hover{background:var(--bg-subtle);color:var(--text);border-color:var(--faint)}.flutter-icon-btn--active{background:var(--primary-tint);border-color:var(--primary);color:var(--primary);box-shadow:0 0 0 2px rgba(var(--primary-rgb),.18)}.flutter-preview-bar__actions{display:flex;align-items:center;gap:6px}.flutter-canvas{flex:1;width:100%;max-width:100vw;overflow:hidden!important;overflow-x:hidden!important;overflow-y:hidden!important;display:flex;align-items:center;justify-content:center;padding:8px 12px;background:radial-gradient(var(--border-soft) 1px,transparent 1px);background-size:16px 16px;background-color:var(--bg-subtle);box-sizing:border-box}.flutter-sheet-wrapper{box-shadow:0 16px 36px -8px rgba(var(--shadow-rgb),.2),0 3px 10px rgba(var(--shadow-rgb),.06);border-radius:3px;background:var(--card);overflow:hidden!important;position:relative;flex:none;box-sizing:border-box}.flutter-empty-preview{text-align:center;padding:30px 20px;color:var(--faint);font-size:13px}.flutter-tools-pane{background:var(--card);display:flex;flex-direction:column;flex:none;z-index:20}.flutter-sheet-header{display:none;align-items:center;justify-content:space-between;padding:12px 18px;border-bottom:1px solid var(--border);background:var(--card);flex:none}.flutter-sheet-title{font-size:14px;font-weight:800;color:var(--text)}.flutter-sheet-close{width:32px;height:32px;display:grid;place-items:center;border-radius:8px;color:var(--faint);font-size:14px;background:var(--bg-subtle)}.flutter-tabs{display:grid;grid-template-columns:repeat(3,1fr);width:100%;background:var(--card);border-top:1px solid var(--border);padding:4px 6px;flex:none;box-shadow:0 -2px 10px rgba(var(--shadow-rgb),.04)}.flutter-tab{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;padding:6px 2px;background:none;border:none;border-radius:8px;color:var(--faint);font-size:11px;font-weight:700;cursor:pointer;white-space:nowrap;transition:all var(--speed) ease;min-width:0}.flutter-tab:hover{color:var(--text);background:var(--card-hi)}.flutter-tab--active{color:var(--primary);background:var(--primary-tint)}.flutter-tab-content{overflow-y:auto;padding:14px 14px 28px;display:none;width:100%;box-sizing:border-box}.flutter-tab-body{display:flex;flex-direction:column;gap:12px;width:100%;max-width:100%;margin:0 auto;box-sizing:border-box}.flutter-card{background:var(--card);border:1px solid var(--border);border-radius:12px;padding:12px 14px;box-shadow:0 1px 3px rgba(var(--shadow-rgb),.04);width:100%;box-sizing:border-box}.flutter-card__head{margin-bottom:8px}.flutter-card__title{display:block;font-size:13px;font-weight:800;color:var(--text)}.flutter-card__sub{display:block;font-size:11px;color:var(--faint);margin-top:2px}.flutter-tab-form{display:flex;flex-direction:column;gap:10px;width:100%;box-sizing:border-box}.flutter-header-toggle-row{display:flex;align-items:center;gap:10px;width:100%}.flutter-segmented--compact{flex:none;width:160px}.flutter-grid-degree-subject{display:grid;grid-template-columns:35% 1fr;gap:8px;width:100%;box-sizing:border-box}.flutter-checks-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;width:100%}.flutter-check-field-group{display:flex;flex-direction:column;gap:6px;background:var(--card-hi);border:1px solid var(--border);border-radius:8px;padding:8px 10px;box-sizing:border-box}.flutter-checkbox-label{display:flex;align-items:center;gap:6px;font-size:11.5px;font-weight:750;color:var(--text-strong);cursor:pointer;-webkit-user-select:none;user-select:none}.flutter-checkbox-label input[type=checkbox]{width:15px;height:15px;accent-color:var(--primary);cursor:pointer}.flutter-input--sm{padding:5px 8px;font-size:12px}.flutter-input:disabled{opacity:.45;background:var(--bg-subtle);cursor:not-allowed;border-color:var(--border-soft)}.clean-paper-editor{width:100%;max-width:780px;height:100%;overflow-y:auto;padding:12px 10px 62px;box-sizing:border-box;margin:0 auto}.clean-accordion-card{padding:10px 14px}.clean-accordion-head-btn{width:100%;display:flex;justify-content:space-between;align-items:center;background:transparent;border:none;padding:0;cursor:pointer;text-align:left}.clean-accordion-pill{font-size:11.5px;font-weight:750;color:var(--dim);background:var(--bg-subtle);border:1px solid var(--border);padding:4px 10px;border-radius:9999px;transition:all var(--speed) ease;line-height:1}.clean-accordion-head-btn:hover .clean-accordion-pill,.clean-accordion-pill--open{background:var(--primary-tint);color:var(--primary);border-color:var(--primary-line)}.clean-header-summary-list{margin-top:10px;padding:10px 12px;background:var(--card-hi);border-radius:8px;border:1px solid var(--border);display:flex;flex-direction:column;gap:6px}.editor-accordion__arrow--open{transform:rotate(90deg);color:var(--primary)}.editor-accordion__title{font-size:12.5px;font-weight:800;color:var(--text)}.editor-accordion__hint{font-size:11px;font-weight:700;color:var(--faint);background:var(--bg-subtle);padding:2px 8px;border-radius:9999px}.editor-accordion__body{padding:12px 14px 14px;background:var(--card-hi);border-top:1px solid var(--bg-subtle);display:flex;flex-direction:column;gap:10px}.clean-settings-panel{background:var(--card-hi);border:1px solid var(--border-soft);border-radius:10px;padding:12px 14px;margin-bottom:12px;box-shadow:0 2px 8px rgba(var(--shadow-rgb),.04)}.clean-settings-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}@media(max-width:600px){.clean-settings-grid{grid-template-columns:1fr;gap:8px}}.clean-settings-group{display:flex;flex-direction:column;gap:6px}.clean-settings-group-label{font-size:10.5px;font-weight:800;color:var(--dim);text-transform:uppercase;letter-spacing:.03em}.clean-sheet-container{background:var(--card);border:1px solid var(--border);border-radius:12px;padding:16px 18px;box-shadow:0 4px 16px rgba(var(--shadow-rgb),.05);display:flex;flex-direction:column;gap:16px;box-sizing:border-box}.clean-part-section{display:flex;flex-direction:column;gap:8px}.clean-part-header{display:flex;align-items:center;gap:8px;padding-bottom:6px;border-bottom:1.5px solid var(--text);flex-wrap:nowrap}.clean-part-label{font-size:13.5px;font-weight:850;color:var(--text);text-transform:uppercase;border:none;background:transparent;outline:none;width:85px;flex:none;padding:2px 0;letter-spacing:.02em}.clean-header-dot{font-weight:900;color:var(--faint);flex:none}.clean-part-instruction{font-size:12.5px;font-weight:600;font-style:italic;color:var(--text-strong);border:none;background:transparent;outline:none;flex:1;min-width:120px;padding:2px 0}.clean-part-formula{font-size:12px;font-weight:750;color:var(--text);border:none;background:transparent;outline:none;width:95px;text-align:right;flex:none;padding:2px 0}.clean-del-part-btn{border:none;background:transparent;color:var(--faint);font-size:14px;font-weight:700;cursor:pointer;padding:2px 6px;border-radius:4px;line-height:1;transition:all var(--speed) ease}.clean-del-part-btn:hover{color:var(--danger);background:var(--danger-tint)}.clean-q-list{display:flex;flex-direction:column;gap:4px}.clean-q-wrapper{display:flex;flex-direction:column;gap:2px}.clean-or-line{text-align:center;font-size:11px;font-weight:800;color:var(--primary);padding:4px 0;letter-spacing:.04em}.clean-q-row{display:flex;align-items:flex-start;gap:6px;padding:5px 4px;border-bottom:1px solid var(--bg-subtle);border-radius:6px;transition:background var(--speed) ease}.clean-q-row:hover,.clean-q-row:focus-within{background:var(--card-hi)}.clean-q-num-box{display:flex;align-items:baseline;flex:none;width:26px}.clean-q-num{width:20px;font-size:13px;font-weight:800;color:var(--text);text-align:right;border:none;background:transparent;outline:none;padding:0}.clean-q-num-dot{font-size:13px;font-weight:800;color:var(--text);margin-left:1px}.clean-q-text-wrap{flex:1;min-width:120px}.clean-q-text{width:100%;font-size:11.5px;line-height:1.45;color:var(--text);border:1px solid transparent;border-radius:4px;background:transparent;outline:none;padding:3px 5px;margin:0;resize:vertical;min-height:42px;font-family:inherit;box-sizing:border-box;transition:all var(--speed) ease}.clean-q-text:focus{border-color:var(--border-soft);background:var(--card);box-shadow:0 1px 3px rgba(var(--shadow-rgb),.05)}.clean-q-actions{display:flex;align-items:center;gap:2px;flex:none;opacity:.45;transition:opacity var(--speed) ease}.clean-q-row:hover .clean-q-actions,.clean-q-row:focus-within .clean-q-actions{opacity:1}.clean-action-chip{padding:2px 5px;font-size:10px;font-weight:750;border:1px solid var(--border-soft);background:var(--card);color:var(--dim);border-radius:4px;cursor:pointer;line-height:1;display:inline-flex;align-items:center;justify-content:center;transition:all var(--speed) ease}.clean-action-chip:hover{background:var(--bg-subtle);border-color:var(--faint)}.clean-action-chip:disabled{opacity:.3;cursor:not-allowed}.clean-action-chip--active{color:var(--on-primary);background:var(--primary);border-color:var(--primary-hover)}.clean-action-chip--del{color:var(--danger);border-color:var(--danger-line);background:var(--danger-tint)}.clean-action-chip--del:hover{background:var(--danger-tint)}.clean-inline-q-settings{display:inline-flex;align-items:center;gap:3px;background:var(--card-hi);border:1px solid var(--border-soft);padding:1px 3px;border-radius:5px}.clean-subs-container{display:flex;flex-direction:column;gap:4px;padding-left:32px;margin-top:2px}.clean-sub-row{display:flex;align-items:flex-start;gap:6px;padding:3px 4px;border-bottom:1px dashed var(--bg-subtle);border-radius:4px}.clean-sub-row:hover,.clean-sub-row:focus-within{background:var(--card-hi)}.clean-sub-prefix{font-size:12.5px;font-weight:750;color:var(--text-strong);flex:none}.clean-sub-text{flex:1;font-size:11px;line-height:1.4;color:var(--text);border:1px solid transparent;border-radius:4px;background:transparent;outline:none;padding:2px 4px;resize:vertical;min-height:34px;font-family:inherit;box-sizing:border-box}.clean-sub-text:focus{border-color:var(--border-soft);background:var(--card)}.clean-add-q-line{padding-top:4px}.clean-text-add-btn{display:inline-flex;align-items:center;gap:5px;padding:4px 8px;font-size:11.5px;font-weight:750;color:var(--primary);background:transparent;border:none;cursor:pointer;border-radius:6px;transition:all var(--speed) ease}.clean-text-add-btn:hover{background:var(--primary-tint);color:var(--primary-hover)}.clean-add-part-btn{display:inline-flex;align-items:center;gap:6px;padding:8px 16px;font-size:12.5px;font-weight:750;color:var(--primary);background:var(--primary-tint);border:1px dashed var(--primary-line);border-radius:8px;cursor:pointer;transition:all var(--speed) ease}.clean-add-part-btn:hover{background:var(--primary-tint);border-color:var(--primary-line)}@keyframes flutterPopoverFadeIn{0%{opacity:0;transform:translateY(-6px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}.flutter-grid-2{display:grid;grid-template-columns:1fr 1fr;gap:8px;width:100%;box-sizing:border-box}.flutter-field{display:flex;flex-direction:column;gap:4px;width:100%;min-width:0;box-sizing:border-box}.flutter-field__label{font-size:10.5px;font-weight:750;color:var(--dim);text-transform:uppercase;letter-spacing:.02em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.flutter-input{width:100%;min-width:0;box-sizing:border-box;padding:7px 9px;border-radius:8px;border:1px solid var(--border-soft);font-size:12.5px;color:var(--text);background:var(--card-hi);outline:none;transition:all var(--speed) ease}.flutter-input::placeholder,input::placeholder,textarea::placeholder{color:var(--faint)!important;opacity:.28!important}.flutter-input:focus{border-color:var(--primary);background:var(--card);box-shadow:0 0 0 3px rgba(var(--primary-rgb),.15)}.flutter-segmented{display:flex;background:var(--bg-subtle);padding:3px;border-radius:8px;border:1px solid var(--border);gap:4px}.flutter-seg-btn{flex:1;display:flex;align-items:center;justify-content:center;gap:6px;padding:7px 12px;border-radius:6px;border:none;background:transparent;color:var(--faint);font-size:12px;font-weight:700;cursor:pointer;transition:all var(--speed) ease}.flutter-seg-btn--active{background:var(--card);color:var(--primary);box-shadow:0 2px 5px rgba(var(--shadow-rgb),.08)}.flutter-summary-banner{display:flex;gap:10px;padding:8px 12px;background:var(--green-tint);border:1px solid var(--green-line);border-radius:8px;font-size:12px;font-weight:750;color:var(--green-strong);margin-top:8px}.flutter-stat-card{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:12px 8px;background:var(--card-hi);border:1px solid var(--border);border-radius:8px}.flutter-stat-card__val{font-size:20px;font-weight:850;color:var(--text)}.flutter-stat-card__label{font-size:11px;font-weight:700;color:var(--faint);margin-top:2px}@media(max-width:900px){.flutter-canvas{padding-left:5px;padding-right:5px}.topbar{padding:6px 12px;height:42px;min-height:42px}.topbar__desktop-only{display:none!important}.topbar__back{font-size:13px;font-weight:700}.flutter-ui{height:calc(100dvh - 42px);max-height:calc(100dvh - 42px);overflow:hidden;position:relative}.flutter-preview-pane{padding-bottom:56px;overflow:hidden;height:100%}.flutter-backdrop{position:fixed;inset:0;background:rgba(var(--shadow-rgb),.45);z-index:105;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.flutter-tabs{position:fixed!important;bottom:0!important;left:0!important;right:0!important;width:100%!important;height:54px!important;padding:2px 4px!important;padding-bottom:env(safe-area-inset-bottom,0px)!important;margin:0!important;z-index:9999!important;background:var(--card)!important;border-top:1px solid var(--border)!important;box-shadow:0 -2px 10px rgba(var(--shadow-rgb),.06)!important;display:grid!important;grid-template-columns:none!important;grid-auto-flow:column!important;grid-auto-columns:1fr!important;transform:none!important;transition:none!important;animation:none!important;box-sizing:border-box!important}.flutter-tools-pane--open{position:fixed;bottom:54px;left:0;right:0;height:auto;max-height:82vh;border-top-left-radius:18px;border-top-right-radius:18px;box-shadow:0 -12px 40px rgba(var(--shadow-rgb),.28);border-top:1px solid var(--border-soft);z-index:110;display:flex;flex-direction:column;background:var(--card);animation:flutterSheetSlideUp var(--speed) cubic-bezier(.16,1,.3,1) forwards}.flutter-tools-pane--open .flutter-sheet-header{display:flex}.flutter-tools-pane--open .flutter-tab-content{display:block;flex:1 1 auto;max-height:calc(82vh - 54px);overflow-y:auto}.flutter-tools-pane--full{top:0;height:auto;max-height:none;border-top-left-radius:0;border-top-right-radius:0;box-shadow:none}.flutter-tools-pane--full .flutter-tab-content{max-height:none}}@keyframes flutterSheetSlideUp{0%{transform:translateY(100%);opacity:.6}to{transform:translateY(0);opacity:1}}@media(min-width:901px){.flutter-ui{display:flex;flex-direction:row;height:calc(100vh - 54px);padding-bottom:54px;box-sizing:border-box}.flutter-preview-pane{flex:0 0 54%;height:100%;border-bottom:none;border-right:2px solid var(--border-soft);padding-bottom:0}.flutter-tools-pane{flex:0 0 46%;height:100%;display:flex;flex-direction:column;overflow-y:auto;border-top:none;box-shadow:none}.flutter-tab-content{display:block!important;flex:1}.flutter-sheet-header{display:none!important}}.flutter-export-item{display:flex;align-items:center;gap:10px;padding:10px 12px;background:var(--card-hi);border:1.5px solid var(--border);border-radius:8px;cursor:pointer;transition:all var(--speed) ease;-webkit-user-select:none;user-select:none}.flutter-export-item:hover{background:var(--bg-subtle);border-color:var(--border-soft)}.flutter-export-item--active{background:var(--primary-tint);border-color:var(--primary-hover)}.flutter-export-title{font-size:13px;font-weight:750;color:var(--text);display:block}.flutter-export-meta{font-size:11px;color:var(--faint);display:block;margin-top:2px}.flutter-preview-bar__left{display:flex;align-items:center;gap:8px;min-width:0}.flutter-segmented--sm{flex:none}.flutter-segmented--sm .flutter-seg-btn{padding:5px 8px;font-size:11.5px;white-space:nowrap}.flutter-item-list{display:flex;flex-direction:column;gap:8px;margin-bottom:10px}.flutter-item-tile{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 10px;border:1px solid var(--border);border-radius:10px;background:var(--card);cursor:pointer;transition:border-color var(--speed) ease,background var(--speed) ease}.flutter-item-tile__info{display:flex;align-items:center;gap:10px;min-width:0;flex:1}.flutter-item-tile__num{flex:none;width:22px;height:22px;display:flex;align-items:center;justify-content:center;border-radius:999px;background:var(--bg-subtle);color:var(--dim);font-size:11.5px;font-weight:800}.flutter-item-tile--active .flutter-item-tile__num{background:var(--primary);color:var(--on-primary)}.flutter-item-tile__text{display:flex;flex-direction:column;gap:2px;min-width:0}.flutter-item-tile__title{font-size:13px;font-weight:700;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.flutter-item-tile__meta{font-size:11.5px;color:var(--faint);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.flutter-item-tile__actions{display:flex;align-items:center;gap:4px;flex:none}@media(max-width:520px){.clean-part-header{flex-wrap:wrap;row-gap:4px}.clean-part-instruction{flex:1 0 100%;min-width:0;order:3}.clean-header-dot{display:none}}.flutter-card__title,.clean-settings-title,.flutter-tab-title{display:flex;align-items:center;gap:7px}.flutter-card__title>svg,.clean-settings-title>svg,.flutter-tab-title>svg{flex:none;color:var(--faint)}.flutter-btn>svg,.flutter-seg-btn>svg,.flutter-empty>svg,.flutter-summary-banner svg,.flutter-export-row svg{flex:none;vertical-align:-2px}.clean-quick-btn--upload,.clean-quick-btn--paste{background:var(--card);color:var(--dim);border:1px solid var(--border-soft);border-radius:8px;padding:6px 11px}.clean-action-chip{padding:4px 7px;border-radius:7px;color:var(--faint)}.clean-action-chip--del{color:var(--faint);border-color:var(--border-soft);background:var(--card)}.clean-action-chip:hover{border-color:var(--faint);color:var(--text)}.clean-action-chip--del:hover{color:var(--danger);border-color:var(--danger-line);background:var(--danger-tint)}.clean-del-part-btn{color:var(--faint);font-size:15px;line-height:1;padding:4px 6px;border-radius:7px;border:1px solid transparent;background:transparent;cursor:pointer;transition:all var(--speed) ease}.clean-del-part-btn:hover{color:var(--danger);border-color:var(--danger-line);background:var(--danger-tint)}.clean-q-text,.clean-sub-text,.clean-part-instruction{resize:none}.flutter-input,.clean-input,input[type=text],input[type=number],select,textarea{border-radius:12px;border:1px solid var(--border);background:var(--card)}.flutter-input{min-height:44px;padding:11px 14px;font-size:13.5px}.flutter-input--sm{min-height:36px;padding:8px 11px}.flutter-input::placeholder,input::placeholder,textarea::placeholder{color:var(--faint)!important;opacity:1!important}.flutter-input:focus,input:focus,textarea:focus,select:focus{border-color:var(--primary);background:var(--card);box-shadow:0 0 0 3px rgba(var(--primary-rgb),.14)}.btn{border-radius:var(--radius-pill);padding:13px 16px;font-size:14px;font-weight:700;box-shadow:none;border-color:var(--border)}.btn--primary{background:var(--primary);border-color:var(--primary);box-shadow:none}.btn--primary:hover{background:var(--primary-hover);border-color:var(--primary-hover)}.btn--sm{padding:9px 13px;font-size:13px;border-radius:var(--radius-pill)}.flutter-card{border-radius:16px;border-color:var(--bg-subtle);box-shadow:none;padding:14px 16px}.flutter-card__title{font-size:14px}.flutter-card__sub{font-size:12px;color:var(--faint);line-height:1.45}.flutter-tabs{padding:3px 6px max(3px,env(safe-area-inset-bottom))}.flutter-tab{gap:2px;padding:3px 2px;border-radius:12px;background:none}.flutter-tab--active{color:var(--primary);background:none}.flutter-tab>svg{padding:3px 13px;border-radius:999px;box-sizing:content-box;transition:background var(--speed) ease}.flutter-tab--active>svg{background:var(--primary-tint)}.flutter-sheet-title{font-size:17px;font-weight:800;letter-spacing:-.01em}.flutter-item-tile{border-radius:12px;border-color:var(--bg-subtle)}.flutter-item-tile--active{border-color:var(--primary);background:var(--primary-tint)}.flutter-segmented{border-radius:12px;border-color:var(--border);background:var(--bg-subtle)}.flutter-seg-btn{border-radius:9px}.qc-actions{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:12px}.qc-action{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;padding:12px 6px;border-radius:12px;border:1px solid transparent;font-size:12px;font-weight:700;cursor:pointer;text-align:center;transition:all var(--speed) ease}.qc-action>svg{flex:none}.qc-action--upload{background:var(--primary-tint);border-color:var(--primary-tint);color:var(--primary-hover)}.qc-action--paste,.qc-action--new{background:var(--card-hi);border-color:var(--border);color:var(--dim)}.qc-action:hover{filter:brightness(.97)}.qc-paste{margin-top:10px;display:flex;flex-direction:column;gap:8px}.qc-paste textarea{width:100%;min-height:150px;padding:12px;border-radius:12px;border:1px solid var(--border);background:var(--card);color:var(--text);font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:12.5px;line-height:1.5;resize:vertical;outline:none;box-sizing:border-box}.qc-fab{position:absolute;left:16px;bottom:16px;z-index:20;display:inline-flex;align-items:center;gap:7px;padding:12px 18px;border:none;border-radius:999px;background:var(--primary);color:var(--on-primary);font-size:13.5px;font-weight:700;cursor:pointer;box-shadow:0 6px 18px rgba(var(--primary-rgb),.34);transition:background var(--speed) ease,transform var(--speed) ease}.clean-settings-close{position:absolute;top:10px;right:10px;width:30px;height:30px;display:grid;place-items:center;border-radius:999px;border:none;background:var(--bg-subtle);color:var(--faint);cursor:pointer;transition:all var(--speed) ease}.clean-settings-close:hover{background:var(--border);color:var(--text)}.clean-settings-grid{display:flex;flex-direction:column;gap:16px;padding:16px 18px 18px}.clean-settings-group{display:flex;flex-direction:column;gap:9px}.clean-settings-group-label{font-size:11px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--faint)}.clean-settings-group .clean-action-chip{gap:5px;padding:8px 13px;border-radius:999px;font-size:12px;font-weight:700;border-color:var(--border);color:var(--faint)}.clean-settings-group .clean-action-chip--active{background:var(--primary-tint);border-color:var(--primary);color:var(--primary-hover)}.clean-settings-group .flutter-checkbox-label{display:flex;align-items:center;gap:9px;font-size:13px;color:var(--text-strong);cursor:pointer}.clean-settings-group .flutter-checkbox-label input{width:17px;height:17px;accent-color:var(--primary)}.qc-actions{grid-template-columns:repeat(2,1fr)}.qc-paste__hint{font-size:11.5px;color:var(--warn);line-height:1.4}.qc-next{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;margin-top:14px;padding:13px 16px;border-radius:12px;border:1px dashed var(--border-soft);background:var(--card);color:var(--dim);font-size:13.5px;font-weight:700;cursor:pointer;transition:all var(--speed) ease}.qc-next:hover{border-color:var(--primary);color:var(--primary-hover);background:var(--card-hi)}.qc-intake{width:100%;max-width:520px;margin:0 auto;padding:20px 16px 28px;align-self:center}.qc-intake .qc-paste textarea{min-height:200px}.qc-papers{display:flex;align-items:center;gap:7px;padding:8px 12px;overflow-x:auto;background:var(--card);border-bottom:1px solid var(--bg-subtle);flex:none}.flutter-icon-btn--danger:hover{color:var(--danger);border-color:var(--danger-line);background:var(--danger-tint)}.flutter-icon-btn:disabled{opacity:.38;cursor:default}.qc-paper:disabled,.qc-next:disabled{opacity:.45;cursor:default}.qc-sheet-toggle .flutter-seg-btn{padding:5px 11px}.qc-cut-warning{display:flex;align-items:flex-start;gap:8px;margin:8px 12px 0;padding:9px 12px;border-radius:12px;border:1px solid var(--warn-line);background:var(--warn-tint);color:var(--warn);opacity:.88;font-size:11.5px;line-height:1.45;flex:none}.qc-cut-warning>svg{flex:none;margin-top:1px;opacity:.75}.qc-ask{position:fixed;inset:0;z-index:200;display:grid;place-items:center;padding:20px;background:rgba(var(--shadow-rgb),.42)}.qc-ask__box{width:100%;max-width:380px;display:flex;flex-direction:column;gap:9px;padding:18px;border-radius:16px;background:var(--card);box-shadow:0 18px 44px rgba(var(--shadow-rgb),.22)}.qc-ask__q{margin:0 0 4px;font-size:15.5px;font-weight:800;color:var(--text)}.qc-ask__note{margin:-4px 0 6px;font-size:12.5px;line-height:1.5;color:var(--faint)}.qc-ask__opt{display:flex;align-items:flex-start;gap:11px;padding:13px;border-radius:12px;border:1px solid var(--border);background:var(--card);color:var(--text);text-align:left;cursor:pointer;transition:all var(--speed) ease}.qc-ask__opt>svg{flex:none;margin-top:2px;color:var(--faint)}.qc-ask__opt:hover{border-color:var(--faint);background:var(--card-hi)}.qc-ask__opt--all:hover{border-color:var(--danger-line);background:var(--danger-tint)}.qc-ask__opt--all:hover>svg{color:var(--danger)}.qc-ask__opt-t{display:block;font-size:13.5px;font-weight:700}.qc-ask__opt-s{display:block;margin-top:2px;font-size:11.5px;line-height:1.45;color:var(--faint)}.qc-ask__row{display:flex;gap:8px}.qc-ask__row>.btn{flex:1}.qc-ask__go{background:var(--danger);border-color:var(--danger);color:var(--on-primary)}.qc-ask__go:hover{background:var(--danger-strong);border-color:var(--danger-strong)}.qc-tools{display:flex;align-items:center;justify-content:center;gap:8px;padding:8px 12px;background:var(--card);border-bottom:1px solid var(--bg-subtle);flex:none}.qc-tool{width:38px;height:38px;display:grid;place-items:center;border-radius:11px;border:1px solid var(--border);background:var(--card);color:var(--faint);cursor:pointer;transition:all var(--speed) ease}.qc-tool:hover{border-color:var(--faint);color:var(--text)}.qc-tool--active{border-color:var(--primary);background:var(--primary-tint);color:var(--primary-hover)}.app:has(.flutter-ui--paper) .topbar{display:none}body,.app,.flutter-ui,.flutter-preview-pane,.flutter-canvas,.qc-intake{background:var(--bg)}.flutter-tools-pane,.flutter-tab-body,.flutter-tab-content{background:var(--card)}.flutter-canvas{background-image:none}.flutter-card{border-color:var(--border)}.flutter-sheet-wrapper .sheet{box-shadow:0 2px 14px rgba(var(--shadow-rgb),.1)}.qc-stage{left:0;right:0;position:absolute;bottom:30px;z-index:20;display:flex;justify-content:center;gap:10px;pointer-events:none}.qc-stage>.btn{pointer-events:auto;flex:0 0 auto;width:auto;padding:13px 22px;border-radius:999px;font-size:13.5px;font-weight:700;box-shadow:0 6px 20px rgba(var(--shadow-rgb),.18)}.qc-stage>.btn--ghost{background:rgba(var(--card-rgb),.96);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border-color:var(--border)}.qc-stage>.btn--primary{box-shadow:0 6px 20px rgba(var(--primary-rgb),.4)}.qc-row-parse{width:auto;flex:none;padding:8px 14px;border-radius:999px;font-size:12px;white-space:nowrap}.qc-tool-panel{position:absolute;top:104px;left:14px;right:14px;z-index:30;max-width:680px;margin:0 auto;max-height:calc(100% - 170px);overflow-y:auto;padding:16px 14px 14px;border-radius:16px;border:1px solid var(--border);background:var(--card);box-shadow:0 14px 34px rgba(var(--shadow-rgb),.18)}.qc-tool-panel .clean-accordion-card:last-child{margin-bottom:0}.flutter-preview-pane{overflow-y:auto;overflow-x:hidden}.flutter-canvas{overflow:visible!important;overflow-y:visible!important;flex:none;height:auto}.qc-stage{position:fixed;left:auto;right:14px;bottom:64px;justify-content:flex-end;padding:0;pointer-events:none}.qc-stage>.btn{pointer-events:auto}.clean-accordion-caret{display:grid;place-items:center;width:28px;height:28px;border-radius:999px;color:var(--faint);transition:transform var(--speed) ease,color var(--speed) ease,background var(--speed) ease}.clean-accordion-caret--open{transform:rotate(180deg);color:var(--primary);background:var(--primary-tint)}.qc-tool-panel .clean-accordion-head-btn{pointer-events:none;padding-bottom:4px}.qc-tool-panel .clean-accordion-caret,.qc-tool-panel .clean-accordion-pill{display:none}.flutter-preview-pane{padding-bottom:75px}.qc-fmt{display:flex;flex-direction:column;gap:10px;margin-top:12px;padding-top:12px;border-top:1px solid var(--bg-subtle)}.qc-fmt .flutter-checkbox-label{display:flex;align-items:flex-start;gap:10px;font-size:13px;color:var(--text);cursor:pointer}.qc-fmt .flutter-checkbox-label input{width:17px;height:17px;margin-top:1px;accent-color:var(--primary);flex:none}.qc-fmt__note{display:block;margin-top:2px;font-size:11.5px;line-height:1.4;color:var(--faint)}.qc-spin{width:15px;height:15px;border:2px solid currentColor;border-top-color:transparent;border-radius:999px;animation:qc-spin .7s linear infinite}@keyframes qc-spin{to{transform:rotate(360deg)}}.qc-row-view{width:auto;flex:none;padding:8px 14px;border-radius:999px;font-size:12px;white-space:nowrap}@media(max-width:900px){.flutter-tools-pane--open:not(.flutter-tools-pane--full){background:rgba(var(--card-rgb),.78);backdrop-filter:blur(20px) saturate(115%);-webkit-backdrop-filter:blur(20px) saturate(115%)}.flutter-tools-pane--open:not(.flutter-tools-pane--full) .flutter-tab-body,.flutter-tools-pane--open:not(.flutter-tools-pane--full) .flutter-tab-content,.flutter-tools-pane--open:not(.flutter-tools-pane--full) .flutter-sheet-header{background:transparent}.flutter-backdrop{background:rgba(var(--shadow-rgb),.28)}@supports not ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))){.flutter-tools-pane--open:not(.flutter-tools-pane--full){background:rgba(var(--card-rgb),.96)}}}.shell{height:100%;box-sizing:border-box}.shell__frame{height:100%;display:flex;min-height:0}.shell__rail{display:none}.shell__content{flex:1;min-width:0;min-height:0;display:flex;flex-direction:column}@media(min-width:1025px){.shell{padding:20px;background:var(--bg)}.shell__frame{gap:20px;padding:20px;border:1px solid var(--border);border-radius:24px;background:var(--bg);overflow:hidden}.shell__rail{display:flex;flex-direction:column;justify-content:space-between;flex:none;height:100%;padding:20px;border-radius:16px;background:var(--card)}.shell__rail-top,.shell__rail-bottom{display:flex;flex-direction:column;align-items:center;gap:8px}.shell__logo{width:44px;height:44px;border-radius:12px;border:1px solid var(--primary);display:grid;place-items:center;color:var(--primary);margin-bottom:32px}.shell__nav{display:flex;flex-direction:column;gap:8px}.shell__navbtn{width:48px;height:48px;display:grid;place-items:center;border:0;border-radius:8px;background:transparent;color:var(--dim);transition:background var(--speed) ease,color var(--speed) ease}.shell__navbtn:hover:not(:disabled){background:var(--card-hi);color:var(--text)}.shell__navbtn:disabled{opacity:.4;cursor:not-allowed}.shell__navbtn:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.shell__navbtn--active,.shell__navbtn--active:hover:not(:disabled){background:var(--primary);color:var(--on-primary)}.shell__divider{width:100%;height:1px;background:var(--border);margin:8px 0}.shell__avatar{width:44px;height:44px;border-radius:999px;display:grid;place-items:center;background:var(--primary-tint);color:var(--primary);font-size:13px;font-weight:700;letter-spacing:.04em}.shell__content{border:1px solid var(--border);border-radius:16px;overflow:hidden;background:var(--bg)}.shell__content>.home,.shell__content>.chem{height:100%;min-height:0;overflow-y:auto}.shell__content>.app{height:100%;max-height:100%}}.bank{min-height:100%;display:flex;flex-direction:column;background:var(--bg)}.bank__count{margin-left:auto;font-size:12.5px;color:var(--faint)}.bank__main{flex:1;min-height:0;width:100%;max-width:1080px;margin:0 auto;padding:28px 32px 90px;box-sizing:border-box}.bank__empty{text-align:center;padding:70px 20px;color:var(--faint);display:flex;flex-direction:column;align-items:center;gap:12px}.bank__empty h2{margin:4px 0 0;font-size:18px;color:var(--text)}.bank__empty p{margin:0;max-width:46ch;line-height:1.6;font-size:13.5px}.bank__empty .btn{margin-top:8px}.bank__filters{display:grid;grid-template-columns:minmax(220px,2fr) repeat(3,minmax(0,1fr));gap:10px;margin-bottom:14px}.bank__search{display:flex;align-items:center;gap:8px;padding:0 12px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--card);color:var(--faint)}.bank__search input{flex:1;min-width:0;border:0;background:transparent;outline:none;padding:10px 0;font-size:13px;color:var(--text)}.bank__summary{margin:0 0 12px}.bank__note{margin-top:14px}.bank__list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.bank__row{display:flex;gap:12px;padding:12px 14px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--card);transition:border-color var(--speed) ease,background var(--speed) ease}.bank__row:hover{border-color:var(--border-soft)}.bank__row.is-picked{border-color:var(--primary-line);background:var(--primary-tint)}.bank__pick{display:flex;align-items:flex-start;padding-top:2px}.bank__pick input{width:16px;height:16px;accent-color:var(--primary);cursor:pointer}.bank__body{flex:1;min-width:0}.bank__text{margin:0;font-size:13.5px;line-height:1.55;color:var(--text)}.bank__tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}.tag{font-size:10.5px;font-weight:650;letter-spacing:.04em;padding:3px 8px;border-radius:999px;background:var(--card-hi);color:var(--dim);border:1px solid var(--border)}.tag--quiet{background:transparent;color:var(--faint)}.bank__none{padding:40px 10px;text-align:center;color:var(--faint);font-size:13px}.bank__bar{position:sticky;bottom:0;margin-top:auto;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 20px;border-top:1px solid var(--border);background:var(--card);font-size:13px;color:var(--dim)}.bank__bar-actions{display:flex;gap:10px}.bank__clear{align-self:center;margin:0 0 24px;background:none;border:0;color:var(--faint);font-size:12px;text-decoration:underline;text-underline-offset:3px}.bank__clear:hover{color:var(--danger)}@media(max-width:700px){.bank__filters{grid-template-columns:1fr 1fr}.bank__search{grid-column:1 / -1}.bank__main{padding:20px 16px 90px}}.bp{min-height:100%;display:flex;flex-direction:column;background:var(--bg)}.bp__pick{margin-left:auto;max-width:220px}.bp__main{flex:1;min-height:0;width:100%;max-width:1080px;margin:0 auto;padding:28px 32px 70px;box-sizing:border-box}.bp__grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:20px;align-items:start}.bp__panel{border:1px solid var(--border);border-radius:var(--radius);background:var(--card);padding:18px}.bp__part{border-top:1px solid var(--border-soft);padding-top:12px;margin-top:12px}.bp__part-name{font-size:12px;font-weight:700;letter-spacing:.06em;color:var(--dim);margin-bottom:8px}.bp__findings{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.bp__finding{display:flex;align-items:flex-start;gap:9px;padding:10px 12px;border-radius:var(--radius-sm);font-size:13px;line-height:1.5;border:1px solid transparent}.bp__finding strong{font-weight:650}.bp__finding--error{background:var(--danger-tint);border-color:var(--danger-line);color:var(--danger)}.bp__finding--warning{background:var(--warn-tint);border-color:var(--warn-line);color:var(--warn)}.bp__finding--ok{background:var(--green-tint);border-color:var(--green-line);color:var(--green)}.bp__finding svg{flex:none;margin-top:1px}.bp__bars{display:flex;flex-direction:column;gap:7px}.bp__bar{display:grid;grid-template-columns:42px 1fr auto;align-items:center;gap:10px}.bp__bar-key{font-size:11.5px;font-weight:650;color:var(--dim)}.bp__bar-track{height:8px;border-radius:999px;background:var(--card-hi);overflow:hidden}.bp__bar-fill{display:block;height:100%;border-radius:999px;background:var(--primary)}.bp__bar-fill--k{background:var(--info)}.bp__bar-val{font-size:11px;color:var(--faint);white-space:nowrap}@media(max-width:900px){.bp__grid{grid-template-columns:1fr}.bp__main{padding:20px 16px 60px}}.topbar__tools{display:flex;gap:6px;margin-left:auto}.reagent{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--card-hi);padding:14px;margin-top:14px}.reagent__actions{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin-top:12px}.reagent__structure{margin-top:12px;padding:12px;border:1px solid var(--border);border-radius:var(--radius-sm);background:#fff;display:flex;flex-direction:column;align-items:center;gap:6px}.reagent__structure svg{max-width:100%;height:auto}.reagent__structure .note--quiet{color:#666}.note--quiet{color:var(--faint);font-size:11.5px;margin-top:4px}.linkish{background:none;border:0;padding:0;color:var(--primary);font-size:12.5px;text-decoration:underline;text-underline-offset:3px;cursor:pointer}.research__status{font-size:11.5px;color:var(--faint);margin-bottom:12px}.research__row{display:flex;gap:10px;align-items:center}.research__row .input{flex:1;min-width:0}.research__code{background:var(--card-hi);border:1px solid var(--border);border-radius:var(--radius-sm);padding:12px 14px;font-size:12px;text-align:left;color:var(--dim);white-space:pre;overflow-x:auto;margin:4px 0}.research__facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px 16px;margin:16px 0 0}.research__facts dt{font-size:10.5px;letter-spacing:.06em;text-transform:uppercase;color:var(--faint)}.research__facts dd{margin:2px 0 0;font-size:14px;font-weight:600;color:var(--text)}.research__ids{margin-top:16px;padding-top:12px;border-top:1px solid var(--border-soft);font-size:11.5px;line-height:1.9;word-break:break-all}.research__ids code{color:var(--dim)}.chem__module{background:transparent;border:1px solid var(--border);color:var(--dim);font:inherit;cursor:pointer}.chem__module:hover:not(:disabled):not(.chem__module--on){background:var(--card-hi);color:var(--text)}.chem__module:disabled{cursor:not-allowed;opacity:.55}.viewer3d__bar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px}.viewer3d__stage{position:relative;width:100%;height:340px;border:1px solid var(--border);border-radius:var(--radius-sm);background:#fff;overflow:hidden}.viewer3d__hint{position:absolute;inset:0;display:grid;place-items:center;font-size:12.5px;color:#666}.viewer3d canvas{display:block}.btn:focus-visible,.icon-btn:focus-visible,.segmented__btn:focus-visible,.chem__module:focus-visible,.tool:focus-visible,.input:focus-visible,.select:focus-visible,.textarea:focus-visible,.dropzone:focus-visible,.item-add:focus-visible,.bank__row input:focus-visible{outline:var(--focus-width, 1px) solid var(--primary);outline-offset:2px}.input:focus,.select:focus,.textarea:focus{border-color:var(--primary)}.sev-primary{--sev: var(--primary);--sev-hover: var(--primary-hover);--sev-ink: var(--on-primary);--sev-tint: var(--primary-tint);--sev-line: var(--primary-line)}.sev-secondary{--sev: var(--secondary);--sev-hover: var(--card-hi);--sev-ink: var(--on-secondary);--sev-tint: var(--card-hi);--sev-line: var(--border-soft)}.sev-success{--sev: var(--green);--sev-hover: var(--green-strong);--sev-ink: #052e16;--sev-tint: var(--green-tint);--sev-line: var(--green-line)}.sev-info{--sev: var(--info);--sev-hover: #7dd3fc;--sev-ink: #082f49;--sev-tint: var(--info-tint);--sev-line: var(--info-line)}.sev-warn{--sev: var(--warn);--sev-hover: var(--warn-strong);--sev-ink: #431407;--sev-tint: var(--warn-tint);--sev-line: var(--warn-line)}.sev-help{--sev: var(--help);--sev-hover: #d8b4fe;--sev-ink: #3b0764;--sev-tint: var(--help-tint);--sev-line: var(--help-line)}.sev-danger{--sev: var(--danger);--sev-hover: var(--danger-strong);--sev-ink: #450a0a;--sev-tint: var(--danger-tint);--sev-line: var(--danger-line)}.sev-contrast{--sev: var(--contrast);--sev-hover: #e4e4e7;--sev-ink: var(--on-contrast);--sev-tint: var(--card-hi);--sev-line: var(--border-soft)}.btn--sev{background:var(--sev);border-color:var(--sev);color:var(--sev-ink)}.btn--sev:hover:not(:disabled){background:var(--sev-hover);border-color:var(--sev-hover);color:var(--sev-ink)}.btn--outlined{background:transparent;border-color:var(--sev-line);color:var(--sev)}.btn--outlined:hover:not(:disabled){background:var(--sev-tint);border-color:var(--sev);color:var(--sev)}.btn--text{background:transparent;border-color:transparent;color:var(--sev)}.btn--text:hover:not(:disabled){background:var(--sev-tint);border-color:transparent;color:var(--sev)}.btn--raised{box-shadow:var(--shadow-md)}.btn--raised:hover:not(:disabled){box-shadow:var(--shadow-lg)}.btn--square{border-radius:var(--radius-sm)}.btn--sev:focus-visible,.btn--outlined:focus-visible,.btn--text:focus-visible{outline:1px solid var(--sev);outline-offset:2px}.msg{display:flex;align-items:flex-start;gap:10px;padding:11px 14px;border-radius:var(--radius-sm);border:1px solid var(--sev-line, var(--border));background:var(--sev-tint, var(--card-hi));color:var(--sev, var(--text));font-size:13px;line-height:1.55}.msg svg{flex:none;margin-top:2px}.msg--solid{background:var(--sev);border-color:var(--sev);color:var(--sev-ink)}.pchead{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;flex-wrap:wrap;padding-bottom:14px;border-bottom:1px solid var(--border)}.pchead__title{margin:0;font-size:19px;font-weight:650;letter-spacing:-.01em}.pchead__syn{margin:4px 0 0;font-size:12.5px;color:var(--faint);line-height:1.5}.pcstats{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:14px 18px;margin:16px 0 0}.pcstats dt{font-size:10.5px;letter-spacing:.06em;text-transform:uppercase;color:var(--faint)}.pcstats dd{margin:3px 0 0;font-size:15px;font-weight:650;color:var(--text)}.pcfields{margin-top:18px;display:flex;flex-direction:column;gap:12px}.pcfield__label{font-size:10.5px;letter-spacing:.06em;text-transform:uppercase;color:var(--faint);margin-bottom:5px}.pcfield__row{display:flex;align-items:center;gap:10px;background:var(--card-hi);border:1px solid var(--border);border-radius:var(--radius-sm);padding:8px 8px 8px 12px}.pcfield__value{flex:1;min-width:0;font-size:12.5px;color:var(--text);word-break:break-all;line-height:1.55}.pcfield__value--mono{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px}.pcnames__head{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;margin-bottom:12px}.pcnames__filter{max-width:220px}.pcnames__body{display:flex;flex-direction:column;gap:14px}.pcnames__caption{font-size:10.5px;letter-spacing:.06em;text-transform:uppercase;color:var(--faint);margin-bottom:8px}.chips{display:flex;flex-wrap:wrap;gap:6px;margin:0;padding:0;list-style:none}.chip{display:inline-flex;align-items:center;max-width:100%;padding:4px 10px;border-radius:999px;border:1px solid var(--border);background:var(--card-hi);color:var(--dim);font-size:12px;line-height:1.5;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;transition:border-color var(--speed) ease,color var(--speed) ease}.chip:hover{border-color:var(--border-soft);color:var(--text)}.chip--mono{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11.5px;color:var(--faint)}.chip--accent{border-color:var(--primary-line);background:var(--primary-tint);color:var(--primary);font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11.5px;font-weight:650}@media(max-width:700px){.pcnames__filter{max-width:none;width:100%}}.chem__main--wide{max-width:none}.pcgrid{display:grid;gap:16px;margin-top:16px;grid-template-columns:minmax(0,1fr)}@media(min-width:1000px){.pcgrid{grid-template-columns:minmax(0,.95fr) minmax(0,1.25fr)}.pcgrid__search{grid-column:1}.pcgrid__names{grid-column:1 / -1}}@media(min-width:1360px){.pcgrid{grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr) minmax(0,1fr)}.pcgrid__search{grid-column:1;grid-row:1}.pcgrid__identity{grid-column:1;grid-row:2}.pcgrid__ids{grid-column:2;grid-row:2}.pcgrid__shape{grid-column:3;grid-row:2}.pcgrid__names{grid-column:1 / -1;grid-row:3}}.pcgrid__identity,.pcgrid__ids,.pcgrid__shape{display:flex;flex-direction:column}.pcgrid__shape .viewer3d{display:flex;flex-direction:column;flex:1;min-height:0}.pcgrid__shape .viewer3d__stage{height:auto;flex:1;min-height:250px}.pcgrid__shape .viewer3d__bar{margin-bottom:8px}.pcgrid__names .pcnames__body{max-height:156px;overflow-y:auto}.pcstats__alt{display:block;margin-top:3px;font-size:12px;font-weight:500;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;color:var(--dim)}.pcprops{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:12px 20px;margin:0}.pcprops dt{font-size:10.5px;letter-spacing:.05em;text-transform:uppercase;color:var(--faint);line-height:1.4}.pcprops dd{margin:3px 0 0;font-size:14px;font-weight:650;color:var(--text)}@media(min-width:1000px){.pcgrid__computed{grid-column:1 / -1}}@media(min-width:1360px){.pcgrid__computed{grid-column:1 / -1;grid-row:3}.pcgrid__names{grid-row:4}}.viewer3d__toggles{display:flex;align-items:center;gap:12px}.viewer3d__check{font-size:12px;padding:0;white-space:nowrap}.viewer3d__pending{display:flex;align-items:center;justify-content:center;gap:10px;min-height:190px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--card-hi);color:var(--faint);font-size:12.5px}.pcsearch{position:relative}.pchints{position:absolute;top:calc(100% + 4px);left:0;right:0;z-index:30;margin:0;padding:4px;list-style:none;max-height:260px;overflow-y:auto;background:var(--card);border:1px solid var(--border-soft);border-radius:var(--radius-sm);box-shadow:var(--shadow-lg)}.pchints button{display:block;width:100%;text-align:left;padding:7px 10px;border:0;border-radius:6px;background:transparent;color:var(--text);font-size:13px;transition:background var(--speed) ease}.pchints button:hover{background:var(--primary-tint);color:var(--primary)}.chip--action{cursor:pointer}.chip--action:hover:not(:disabled){border-color:var(--primary-line);background:var(--primary-tint);color:var(--primary)}.chip--action:disabled{opacity:.5;cursor:not-allowed}@media(min-width:1000px){.pcgrid__quick{grid-column:2 / -1;grid-row:1}}.pctools__row{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin-top:10px}.pctools__smarts{max-width:230px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.pcmatches{list-style:none;margin:14px 0 0;padding:0;display:flex;flex-direction:column;gap:6px}.pcmatches li{display:flex;align-items:center;gap:12px;padding:8px 12px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--card-hi);font-size:12px;color:var(--faint)}.pcmatches li.is-hit{border-color:var(--primary-line);background:var(--primary-tint);color:var(--text)}.pcmatches__count{flex:none;min-width:22px;text-align:center;font-weight:700;font-size:13px}.pcmatches li.is-hit .pcmatches__count{color:var(--primary)}@media(min-width:1000px){.pcgrid__rdkit,.pcgrid__tools{grid-column:1 / -1}}@media(min-width:1360px){.pcgrid__rdkit{grid-column:1 / -1;grid-row:4}.pcgrid__tools{grid-column:1 / -1;grid-row:5}.pcgrid__names{grid-row:6}}.dockgrid{display:grid;gap:16px;margin-top:16px;grid-template-columns:minmax(0,1fr)}@media(min-width:1000px){.dockgrid{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.dockgrid__error,.dockgrid__view,.dockgrid__caveat,.dockgrid__contacts{grid-column:1 / -1}}@media(min-width:1360px){.dockgrid{grid-template-columns:minmax(0,.9fr) minmax(0,.9fr) minmax(0,1.3fr)}.dockgrid__target{grid-column:1;grid-row:1}.dockgrid__ligand{grid-column:2;grid-row:1}.dockgrid__view{grid-column:3;grid-row:1}.dockgrid__contacts{grid-column:3;grid-row:2}.dockgrid__poses{grid-column:1 / 3;grid-row:2}.dockgrid__caveat{grid-column:1 / -1;grid-row:3}.dockgrid__error{grid-column:1 / -1;grid-row:4}}.dockgrid__target,.dockgrid__ligand,.dockgrid__view{display:flex;flex-direction:column}.dockgrid__view .viewer3d{display:flex;flex-direction:column;flex:1;min-height:0}.dockgrid__view .viewer3d__stage{height:380px;min-height:380px;position:relative}.dock__hint{margin:4px 0 10px;font-size:12px;line-height:1.5;color:var(--text-muted)}.dock__sub{margin:14px 0 8px;font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--text-muted)}.dock__row{display:flex;gap:8px;align-items:center}.dock__row .input{flex:1;min-width:0}.dock__row input[type=range]{flex:1;accent-color:var(--primary)}.dock__exval{min-width:24px;text-align:right;font-variant-numeric:tabular-nums;font-weight:600}.dock__smiles{width:100%;resize:vertical;font-family:var(--font-mono, ui-monospace, monospace);font-size:12px}.dock__sites{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:4px}.dock__sites label{display:flex;align-items:center;gap:8px;cursor:pointer;font-size:13px}.dock__sitemeta{color:var(--text-muted);font-size:12px}.dock__presets{display:flex;flex-wrap:wrap;gap:6px}.dock__run{margin-top:14px;width:100%}.dock__table{width:100%;border-collapse:collapse;font-size:13px}.dock__table th{text-align:left;font-size:11px;letter-spacing:.05em;text-transform:uppercase;color:var(--text-muted);padding:6px 8px;border-bottom:1px solid var(--surface-border)}.dock__table td{padding:6px 8px;border-bottom:1px solid var(--surface-border)}.dock__table tbody tr{cursor:pointer}.dock__table tbody tr:hover{background:var(--surface-hover)}.dock__table--on{background:var(--highlight-bg)}.dock__score{font-variant-numeric:tabular-nums;font-weight:700}.dock__rmsd{font-variant-numeric:tabular-nums;color:var(--text-muted)}.dock__error{margin:0;font-size:13px;line-height:1.6;color:var(--danger-text, #f38ba8)}.dock__caveat{margin:0;font-size:13px;line-height:1.65;color:var(--text-muted)}.dock__warn{margin:8px 0 0;font-size:12px;color:var(--warn-text, #f9c74f)}.dockview__toggle{display:inline-flex;align-items:center;gap:6px;font-size:12px;color:var(--text-muted);cursor:pointer}.dockview__toggle input{accent-color:var(--primary)}.dock__contacts{list-style:none;margin:0 0 10px;padding:0;display:flex;flex-direction:column;gap:7px}.dock__contacts li{display:flex;align-items:center;gap:9px;font-size:13px}.dock__contacts li>*{min-width:0}.dock__contacts .badge{flex:0 0 auto;width:auto;min-width:116px;justify-content:center;padding:6px 10px}.dock__contacts strong{flex:0 0 auto;font-variant-numeric:tabular-nums}.dock__contacts .dock__sitemeta{flex:1 1 auto}.dock__consensus{display:flex;align-items:center;gap:10px;margin:0 0 12px;font-size:12px;line-height:1.5;color:var(--text-muted)}.dock__consensus .badge{flex:0 0 auto;width:auto;justify-content:center;padding:6px 10px}.dock__flag{display:inline-block;margin-left:8px;padding:2px 7px;border-radius:var(--radius-sm);background:var(--danger-bg, #4a1f2b);color:var(--danger-text, #f38ba8);font-size:10.5px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;cursor:help}.dock__exports{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:12px}.dock__file{display:inline-flex;align-items:center;margin-bottom:8px;cursor:pointer}.sheet{--fs: 14.6px;--ink: #000000;--rule: #000000;--muted: #000000;width:794px;height:1123px;background:#fff;color:#000;font-family:var(--sheet-font, "Times New Roman", Times, Georgia, serif);--fit: 1;--pm-top: 42px;--pm-right: 46px;--pm-bottom: 42px;--pm-left: 46px;--cp-top: 5px;--cp-right: 7px;--cp-bottom: 5px;--cp-left: 7px;--cut-display: block;--off-header-x: 0px;--off-header-y: 0px;--off-body-x: 0px;--off-body-y: 0px;--row-min-h: 0px;--lh: 1.36;--part-fs: 1;--part-weight: bold;--part-style: normal;--instr-fs: 1;--instr-weight: bold;--instr-style: normal;font-size:calc(var(--fs) * var(--fit));line-height:var(--lh);padding:calc(var(--pm-top) * var(--fit)) calc(var(--pm-right) * var(--fit)) calc(var(--pm-bottom) * var(--fit)) calc(var(--pm-left) * var(--fit));overflow:hidden;display:flex;flex-direction:column}.sheet--sans{font-family:Arial,Helvetica,Segoe UI,sans-serif}.sheet--split{padding:0;display:block}.sheet__half{height:561px;padding:calc(var(--pm-top) * .62 * var(--fit, 1)) calc(var(--pm-right) * .87 * var(--fit, 1)) calc(var(--pm-bottom) * .62 * var(--fit, 1)) calc(var(--pm-left) * .87 * var(--fit, 1));overflow:hidden;display:flex;flex-direction:column}.sheet__cut{display:var(--cut-display, block);height:1px;border-top:1px dashed #999999;position:relative}.sheet__cut-label{display:var(--cut-display, block);position:absolute;top:-8px;right:40px;background:#fff;padding:0 8px;font-family:Arial,Helvetica,sans-serif;font-size:8px;letter-spacing:.14em;color:#999;text-transform:uppercase}.sheet__header{flex:none;position:relative;left:calc(var(--off-header-x) * var(--fit, 1));top:calc(var(--off-header-y) * var(--fit, 1))}.sheet__header--left{text-align:left}.sheet__header--center{text-align:center}.sheet__institution{font-size:calc(var(--inst-fs, 1.25) * 1em * var(--heading-scale, 1));font-weight:var(--inst-weight, bold);font-style:var(--inst-style, normal);letter-spacing:.01em;line-height:1.3}.sheet__department,.sheet__examtitle,.sheet__coursetitle{font-size:calc(1.06em * var(--heading-scale, 1));font-weight:700;margin-top:1px}.sheet__header--caps .sheet__institution,.sheet__header--caps .sheet__department,.sheet__header--caps .sheet__examtitle,.sheet__header--caps .sheet__coursetitle{text-transform:uppercase}.sheet__dateline{display:flex;justify-content:space-between;align-items:baseline;gap:16px;margin:calc(6px * var(--fit, 1)) 0 calc(3px * var(--fit, 1));font-weight:700;text-align:left;color:#000}.sheet__dateline-right{text-align:right;font-weight:700;color:#000}.sheet__regrow{text-align:right;margin-bottom:8px}.sheet__reglabel{font-size:.84em;vertical-align:middle}.sheet__regbox{display:inline-block;width:calc(168px * var(--fit, 1));height:1.55em;border:1px solid var(--rule);margin-left:7px;vertical-align:middle}.sheet__rule{border-top:1.5px solid var(--rule);margin:9px 0}.sheet__rule--thin{border-top:1px solid var(--rule);margin:7px 0}.sheet__meta{display:flex;justify-content:space-between;gap:16px;font-size:.92em;margin-top:2px}.sheet__meta-col{display:flex;flex-direction:column;gap:2px}.sheet__meta-col--right{text-align:right}.sheet__course{font-weight:700}.sheet__body{flex:1;min-height:0;overflow:hidden;position:relative;left:calc(var(--off-body-x) * var(--fit, 1));top:calc(var(--off-body-y) * var(--fit, 1))}.sheet__part{text-align:center;font-weight:700;font-size:1.02em;letter-spacing:.05em;margin:12px 0 3px}.sheet__instruction{text-align:center;font-size:.88em;font-style:italic;margin-bottom:7px}.sheet__table{width:100%;border-collapse:collapse}.sheet__table td,.sheet__table th{vertical-align:top;padding:calc(var(--cp-top) * var(--fit, 1)) calc(var(--cp-right) * var(--fit, 1)) calc(var(--cp-bottom) * var(--fit, 1)) calc(var(--cp-left) * var(--fit, 1))}.sheet__q-row{height:calc(var(--row-min-h) * var(--fit, 1))}.sheet__q-row td{height:calc(var(--row-min-h) * var(--fit, 1));box-sizing:border-box}.sheet__table--grid td,.sheet__table--grid th{border:1.2px solid #000000}.sheet__table--lines td,.sheet__table--lines th{border-bottom:1.2px solid #000000}.sheet__table--none td,.sheet__table--none th{border:0;padding:4px 7px 4px 0}.sheet__table th{font-size:.84em;letter-spacing:.02em;text-align:center;font-weight:800;color:#000;background:#e5e7eb}.sheet__part-cell{text-align:center;font-size:calc(1em * var(--part-fs));font-weight:800;font-style:var(--part-style);color:#000}.sheet__part-meta{text-align:center;font-weight:800;color:#000}.sheet__instr-cell{display:table-cell;font-size:calc(1em * var(--instr-fs));font-weight:700;font-style:var(--instr-style);color:#000}.sheet__instr-text{display:inline-block;color:#000}.sheet__instr-formula{float:right;font-weight:800;font-style:var(--instr-style);color:#000;padding-left:18px}.sheet__part{font-size:calc(1.02em * var(--part-fs));font-weight:800;font-style:var(--part-style);color:#000}.sheet__instruction{font-size:calc(.88em * var(--instr-fs));font-weight:700;font-style:var(--instr-style);color:#000}.sheet__col-no,.sheet__col-marks{text-align:center;font-weight:800;color:#000;font-size:1.04em}.sheet__col-level,.sheet__col-co,.sheet__col-po{text-align:center;font-weight:700;color:#000}.sheet__q-text{text-align:justify;color:#000;font-weight:500;line-height:var(--lh, 1.36)}.sheet__sub{display:flex;gap:7px;margin-top:4px}.sheet__sub-label{flex:none;font-weight:700;color:#000}.sheet__or{text-align:center;font-weight:800;letter-spacing:.08em;padding:3px 0;color:#000}.sheet__inline-marks{float:right;font-weight:800;color:#000;padding-left:12px}.sheet__footer{flex:none;margin-top:auto;padding-top:10px;font-size:.8em;color:var(--muted);display:flex;justify-content:space-between;border-top:1px solid #dddddd}.sheet__overflow{font-size:.8em;color:#b45252;text-align:center;padding-top:6px}.sheet__half .sheet__rule{margin:6px 0}.sheet__half .sheet__part{margin:8px 0 2px}.sheet__half .sheet__table td{padding:calc(var(--cp-top) * var(--fit, 1)) calc(var(--cp-right) * var(--fit, 1)) calc(var(--cp-bottom) * var(--fit, 1)) calc(var(--cp-left) * var(--fit, 1))}.sheet__half .sheet__footer{padding-top:6px}.sheet__sub-inline{display:inline}.sheet__editable{outline:none;border-radius:2px;transition:background-color .12s ease,box-shadow .12s ease;cursor:text}.sheet__editable:hover{background:#22c55e21}.sheet__editable:focus{background:#22c55e29;box-shadow:0 0 0 1px #15803d8c}.sheet__editable:empty:before{content:attr(data-placeholder);color:#a0a0a0;font-style:italic}.sheet--move .sheet__editable{cursor:inherit}.sheet--move .sheet__editable:hover,.sheet--move .sheet__editable:focus{background:none;box-shadow:none}.sheet__group{cursor:grab;outline:1px dashed rgba(34,197,94,.55);outline-offset:3px}.sheet__group:hover{outline-color:#22c55ee6}.sheet__group--on{cursor:grabbing;outline:2px solid #16a34a;background:#22c55e12}
