:root{--ink: #4a3b30;--ink-soft: #8b7a67;--ink-faint: #b3a591;--paper: #f6edda;--paper-2: #efe3c9;--card: #ffffff;--line: #e9ddc4;--green: #5cae6f;--green-track: #e8e0cd;--font: "M PLUS Rounded 1c", system-ui, sans-serif}*{box-sizing:border-box}body{margin:0;font-family:var(--font);color:var(--ink);background:var(--paper);background-image:radial-gradient(rgba(180,150,90,.14) 1.4px,transparent 1.4px);background-size:22px 22px;-webkit-font-smoothing:antialiased}.app{max-width:1180px;margin:0 auto;padding:20px 20px 60px}.topbar{display:flex;align-items:center;justify-content:space-between;gap:16px;background:linear-gradient(180deg,#fffdf7,#fbf3df);border:2px solid var(--line);border-radius:20px;padding:14px 20px;box-shadow:0 4px #b4965a1f;flex-wrap:wrap}.brand{display:flex;align-items:center;gap:12px}.brand-logo{font-size:30px;filter:drop-shadow(0 2px 0 rgba(0,0,0,.08))}.brand h1{margin:0;font-size:22px;font-weight:800;letter-spacing:.02em}.mission{margin:2px 0 0;font-size:12px;color:var(--ink-soft);font-weight:700}.mission em{font-style:normal;color:var(--ink)}.mode-switch{display:flex;gap:2px;padding:3px;background:#efe6d3;border-radius:12px}.mode-switch button{font-family:inherit;font-weight:800;font-size:12px;color:var(--ink-soft);background:transparent;border:none;padding:6px 12px;border-radius:9px;cursor:pointer}.mode-switch button.is-active{background:#fff;color:var(--ink);box-shadow:0 1px 3px #0000001f}.counters{display:flex;align-items:center;gap:10px}.counter{display:grid;justify-items:center;min-width:62px;padding:6px 10px;border-radius:14px;border:2px solid rgba(0,0,0,.05);line-height:1.1}.counter b{font-size:22px;font-weight:800}.counter span{font-size:11px;font-weight:700}.c-working{background:#fbe9cf;color:#b5761c}.c-waiting{background:#dcebf8;color:#2f6ea6}.c-done{background:#dcf0dd;color:#3d8b4c}.date{font-size:13px;font-weight:700;color:var(--ink-soft);padding-left:6px}.board{margin-top:20px;column-count:3;column-gap:16px}@media (max-width: 900px){.board{column-count:2}}@media (max-width: 620px){.board{column-count:1}}.room{break-inside:avoid;margin:0 0 16px;border:2px solid;border-radius:18px;padding:12px;box-shadow:0 4px #b4965a1a}.room-head{display:flex;align-items:center;gap:8px;margin:2px 2px 12px}.room-pill{color:#fff;font-weight:800;font-size:13px;padding:4px 12px;border-radius:999px;box-shadow:inset 0 -2px #0000001f}.room-sub{font-size:11px;font-weight:700;color:var(--ink-soft)}.room-body{display:grid;gap:10px}.emp-card{text-align:left;font-family:inherit;color:inherit;background:var(--card);border:2px solid var(--line);border-radius:14px;padding:10px 12px 12px;cursor:pointer;transition:transform .12s ease,box-shadow .12s ease,border-color .12s ease;box-shadow:0 2px #b4965a1f;width:100%}.emp-card:hover{transform:translateY(-2px);border-color:#d9c9a6;box-shadow:0 6px #b4965a29}.emp-head{display:flex;align-items:center;gap:10px}.emp-name{display:grid;flex:1;min-width:0}.emp-name strong{font-size:15px;font-weight:800}.emp-name span{font-size:11px;color:var(--ink-soft);font-weight:700}.emp-task{margin:10px 2px 0;font-size:12.5px;font-weight:500;color:#6a5a49;min-height:18px}.badge{font-size:10.5px;font-weight:800;padding:3px 9px;border-radius:999px;white-space:nowrap}.badge-working{background:#fbe4c4;color:#b5761c}.badge-waiting{background:#e7e0d2;color:#8a7a63}.badge-done{background:#d6efd8;color:#3d8b4c}.badge-rest{background:#dceaf7;color:#3877a8}.bar{position:relative;margin-top:10px;height:12px;background:var(--green-track);border-radius:999px;overflow:hidden}.bar-fill{height:100%;background:linear-gradient(90deg,#6fbf7c,#55a866);border-radius:999px;background-size:22px 22px;background-image:linear-gradient(45deg,rgba(255,255,255,.22) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.22) 50%,rgba(255,255,255,.22) 75%,transparent 75%);animation:stripes 1s linear infinite}.bar-fill.is-done{animation:none;background-image:none;background:#57ab63}.bar-label{position:absolute;right:8px;top:-1px;font-size:10px;font-weight:800;color:#3f7d4a}@keyframes stripes{0%{background-position:0 0}to{background-position:22px 0}}.request-hint{display:inline-block;margin-top:8px;font-size:11px;font-weight:700;color:var(--ink-faint)}.avatar-wrap{position:relative;flex:none;width:54px;height:54px}.chibi{width:54px;height:54px;display:block;animation:bob 3.2s ease-in-out infinite;filter:drop-shadow(0 2px 0 rgba(0,0,0,.08))}.emp-card:hover .chibi{animation-duration:.8s}.avatar-img{border-radius:50%;object-fit:cover;object-position:50% 28%;background:#fff;border:2px solid #fff;box-shadow:0 2px #0000001a,0 0 0 1px var(--line)}.role-badge{position:absolute;right:-6px;bottom:-2px;width:22px;height:22px;display:grid;place-items:center;background:#fff;border-radius:50%;font-size:12px;box-shadow:0 2px 4px #0000002e}.is-resting .chibi{animation:breathe 3.2s ease-in-out infinite}.zzz{position:absolute;top:-8px;right:-10px;font-size:14px;font-weight:800;color:#6b93bd;animation:floatz 2.4s ease-in-out infinite}@keyframes bob{0%,to{transform:translateY(0)}50%{transform:translateY(-4px)}}@keyframes breathe{0%,to{transform:scale(1)}50%{transform:scale(1.04)}}@keyframes floatz{0%{transform:translateY(0);opacity:.4}50%{opacity:1}to{transform:translateY(-8px);opacity:0}}.overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#3c2d1e66;display:grid;place-items:center;padding:20px;z-index:50;animation:fade .15s ease}.modal{position:relative;width:min(440px,100%);background:#fffdf7;border:2px solid var(--line);border-radius:22px;padding:22px;box-shadow:0 20px 50px #3c2d1e47;animation:pop .16s ease}.modal-close{position:absolute;top:12px;right:14px;border:none;background:transparent;font-size:24px;color:var(--ink-soft);cursor:pointer;line-height:1}.modal-head{display:flex;align-items:center;gap:12px}.modal-head strong{display:block;font-size:16px;font-weight:800}.modal-head span{font-size:12px;color:var(--ink-soft);font-weight:700}.modal-title{margin:14px 0 12px;font-size:18px;font-weight:800}.mic{width:100%;display:flex;align-items:center;justify-content:center;gap:8px;border:2px dashed #e0b0b0;background:#fdf0f0;color:#c0574f;font-family:inherit;font-weight:800;font-size:13px;padding:12px;border-radius:14px;cursor:pointer;margin-bottom:14px}.mic.is-on{border-style:solid;background:#f7dcdc;animation:pulse 1.1s ease-in-out infinite}.mic-dot{font-size:16px}.field{display:grid;gap:5px;margin-bottom:12px}.field>span{font-size:12px;font-weight:800;color:var(--ink-soft)}.field input,.field textarea,.field select{font-family:inherit;font-size:14px;color:var(--ink);border:2px solid var(--line);border-radius:12px;padding:10px 12px;background:#fff;resize:vertical}.field input:focus,.field textarea:focus,.field select:focus{outline:none;border-color:#e0c88f}.modal-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:6px}.btn-ghost,.btn-primary{font-family:inherit;font-weight:800;font-size:14px;padding:10px 18px;border-radius:12px;cursor:pointer;border:2px solid transparent}.btn-ghost{background:#efe6d3;color:var(--ink-soft)}.btn-primary{background:#f3a63d;color:#fff;box-shadow:inset 0 -3px #00000024}.btn-primary:disabled{opacity:.5;cursor:not-allowed}.toast{position:fixed;bottom:24px;left:50%;transform:translate(-50%);background:#3f5b3f;color:#fff;font-weight:800;font-size:13px;padding:12px 18px;border-radius:999px;box-shadow:0 8px 24px #00000040;z-index:60;animation:pop .2s ease}@keyframes fade{0%{opacity:0}}@keyframes pop{0%{transform:scale(.96);opacity:0}}@keyframes pulse{0%,to{box-shadow:0 0 #c85a5066}50%{box-shadow:0 0 0 8px #c85a5000}}.login-screen{min-height:100vh;display:grid;place-items:center;padding:20px}.login-card{width:min(380px,100%);background:#fffdf7;border:2px solid var(--line);border-radius:22px;padding:32px 28px;box-shadow:0 12px 40px #3c2d1e1f;display:grid;gap:4px}.login-logo{font-size:34px;text-align:center}.login-title{margin:6px 0 0;font-size:20px;font-weight:800;text-align:center}.login-sub{margin:2px 0 18px;font-size:12.5px;color:var(--ink-soft);text-align:center;font-weight:700}.login-card .field{display:grid;gap:5px;margin-bottom:12px}.login-card .field>span{font-size:12px;font-weight:800;color:var(--ink-soft)}.login-card input{font-family:inherit;font-size:14px;color:var(--ink);border:2px solid var(--line);border-radius:12px;padding:11px 12px;background:#fff}.login-card input:focus{outline:none;border-color:#e0c88f}.login-error{background:#fbeaea;border:1px solid #e6b7b7;color:#9a3b3b;font-size:12px;font-weight:700;padding:8px 12px;border-radius:10px;margin-bottom:10px}.login-btn{width:100%;margin-top:4px;padding:12px}.logout-btn{font-family:inherit;font-size:15px;width:34px;height:34px;border-radius:10px;border:2px solid var(--line);background:#fff;color:var(--ink-soft);cursor:pointer;margin-left:4px}.logout-btn:hover{border-color:#d9c9a6}.db-banner{margin:16px 0 0;padding:12px 16px;border-radius:14px;background:#fff;border:2px solid var(--line);font-size:13px;font-weight:700;color:var(--ink-soft)}.db-error{background:#fbeaea;border-color:#e6b7b7;color:#9a3b3b}.queue-row{display:flex;align-items:center;gap:6px;margin-top:10px;flex-wrap:wrap}.pill{font-size:10.5px;font-weight:800;padding:3px 9px;border-radius:999px}.pill-working{background:#fbe4c4;color:#b5761c}.pill-waiting{background:#e7e0d2;color:#8a7a63}.pill-done{background:#d6efd8;color:#3d8b4c}.pill-add{margin-left:auto;background:transparent;color:var(--ink-faint)}.panel{position:relative;width:min(460px,100%);max-height:84vh;overflow-y:auto;background:#fffdf7;border:2px solid var(--line);border-radius:22px;padding:22px;box-shadow:0 20px 50px #3c2d1e47;animation:pop .16s ease}.panel-head{display:flex;align-items:center;gap:12px;padding-bottom:12px;border-bottom:1px solid #eee3cf}.panel-head strong{display:block;font-size:16px;font-weight:800}.panel-head span{font-size:12px;color:var(--ink-soft);font-weight:700}.task-group{margin-top:14px}.group-label{font-size:11px;font-weight:800;margin-bottom:4px}.label-working{color:#b5761c}.label-waiting{color:#8a7a63}.label-done{color:#3d8b4c}.task-row{display:flex;align-items:center;gap:10px;padding:8px 0;border-top:1px solid #f2ead9}.task-main{flex:1;min-width:0}.task-title{font-size:13px;color:var(--ink)}.task-row.is-done .task-title{text-decoration:line-through;color:var(--ink-faint)}.task-actions{flex:none;display:flex;flex-direction:column;gap:4px;align-items:flex-end}.mini-btn.ai{border-color:#e0c88f;background:#fdf6e6;color:#b5761c}.task-result{margin-top:8px;padding:8px 10px;background:#f7f3ea;border:1px solid #eadfc8;border-radius:8px;font-size:12px;color:#5a4c3b;white-space:pre-wrap;line-height:1.55}.task-row.is-done .task-result{text-decoration:none;color:#5a4c3b}.bar-sm{height:8px;margin-top:6px}.mini-btn{font-family:inherit;font-weight:800;font-size:11px;padding:5px 12px;border-radius:9px;border:2px solid var(--line);background:#fff;color:var(--ink-soft);cursor:pointer}.mini-btn.done{border-color:#bfe3c4;background:#eef8ef;color:#3d8b4c}.check{color:var(--green);font-weight:800}.add-task{margin-top:16px;border-top:1px solid #eee3cf;padding-top:14px}.add-title{font-size:12px;font-weight:800;color:var(--ink-soft);margin-bottom:10px}.add-row{display:flex;gap:8px}.add-row input,.add-row select{font-family:inherit;font-size:14px;color:var(--ink);border:2px solid var(--line);border-radius:12px;padding:9px 11px;background:#fff}.add-row input{flex:1;min-width:0}.add-row input:focus,.add-row select:focus{outline:none;border-color:#e0c88f}
