/* Notes standard components (docs/note-standard.md). Loaded only on notes-standard pages.
   Uses the site's colour variables, so it follows any theme that redefines them. */

.note-std .ns-subtitle{font-size:15px;color:var(--text-secondary);margin:6px 0 0;line-height:1.5;}
.note-std .ns-scope{font-size:14.5px;color:var(--text-secondary);margin:6px 0 0;}
.note-std .prose h3{font-size:17px;font-weight:700;margin:26px 0 10px;color:var(--text);scroll-margin-top:88px;}
.note-std .prose ol,.note-std .prose ul{padding-left:22px;}
.note-std .prose a{overflow-wrap:anywhere;}
.note-std .prose p,.note-std .prose li{overflow-wrap:break-word;}

/* In one minute */
.ns-box{background:var(--accent-tint);border-left:4px solid var(--accent);border-radius:0 12px 12px 0;padding:14px 18px;margin:0 0 16px;}
.ns-box h2{margin:0 0 8px !important;font-size:18px !important;}
.ns-box p{margin:0 0 8px !important;}
.ns-box p:last-child{margin-bottom:0 !important;}

/* Exam focus */
.ns-focus{border:1px solid var(--border-strong);border-radius:10px;background:var(--surface);padding:10px 16px;margin:0 0 22px;}
.ns-focus .ns-focus-title{font-size:12px !important;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--accent);margin:0 0 4px !important;text-align:left !important;}
.ns-focus ul{list-style:none;margin:0;padding:0 !important;}
.ns-focus li{font-size:15px !important;line-height:1.6 !important;margin:0 !important;text-align:left !important;}

/* Worked example, apply-it, case, outline blocks */
.ns-ex{border-left:3px solid var(--accent);background:var(--surface-alt);padding:12px 16px;margin:12px 0 18px;border-radius:0 8px 8px 0;}
.ns-ex>p:last-child,.ns-ex>ul:last-child{margin-bottom:0 !important;}
.ns-ex .ns-ex-label{font-size:12px !important;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--accent);margin:0 0 6px !important;text-align:left !important;}
.ns-case{list-style:none;padding:0 !important;margin:0;}
.ns-case>li{border:1px solid var(--border);background:var(--surface);border-radius:10px;padding:12px 16px;margin:0 0 12px !important;text-align:left !important;}
.ns-case .ns-case-name{font-weight:700;display:block;margin-bottom:4px;}
.ns-case p{margin:0 0 6px !important;font-size:15.5px !important;text-align:left !important;}
.ns-case p:last-child{margin-bottom:0 !important;}
.ns-outline{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:0 0 18px;}
.ns-outline>div{border:1px solid var(--border-strong);border-radius:10px;padding:12px 16px;background:var(--surface);}
.ns-outline h3{margin:0 0 8px !important;font-size:15.5px !important;}
.ns-outline ol{margin:0;}
.ns-outline li{font-size:15.5px !important;margin:0 0 6px !important;text-align:left !important;}
.ns-selftest details{border:1px solid var(--border);border-radius:10px;margin:0 0 10px;background:var(--surface);}
.ns-selftest summary{cursor:pointer;min-height:44px;padding:10px 16px;font-weight:600;display:flex;align-items:center;}
.ns-selftest details>p{margin:0 !important;padding:0 16px 12px;font-size:15.5px !important;text-align:left !important;}
.ns-related{list-style:none;padding:0 !important;margin:0;display:flex;flex-wrap:wrap;gap:8px;}
.ns-related li{margin:0 !important;}
.ns-related a{display:inline-flex;align-items:center;min-height:44px;padding:6px 14px;border:1px solid var(--border-strong);border-radius:22px;background:var(--surface);text-decoration:none;font-size:15px;}
.ns-keys li{text-align:left !important;}

/* Comparison tables: wrap on desktop, stacked cards up to 600px */
.prose table.ns-cmp{table-layout:fixed;width:100%;}
.prose table.ns-cmp th,.prose table.ns-cmp td{overflow-wrap:break-word;word-break:normal;white-space:normal;vertical-align:top;}
.prose table.ns-cmp tbody th{background:var(--surface-alt);font-weight:700;}
@media (max-width:600px){
  .prose table.ns-cmp,.prose table.ns-cmp tbody,.prose table.ns-cmp tr,.prose table.ns-cmp td,.prose table.ns-cmp tbody th{display:block;width:100%;box-sizing:border-box;}
  .prose table.ns-cmp{border:none;}
  .prose table.ns-cmp thead{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);}
  .prose table.ns-cmp tr{border:1px solid var(--border-strong);border-radius:10px;margin:0 0 12px;overflow:hidden;background:var(--surface);}
  .prose table.ns-cmp tbody th{border:none;border-bottom:1px solid var(--border-strong);font-size:15px;}
  .prose table.ns-cmp td{border:none;border-bottom:1px solid var(--border);font-size:15px;}
  .prose table.ns-cmp td:last-child{border-bottom:none;}
  .prose table.ns-cmp td::before{content:attr(data-label);display:block;font-family:'Inter',sans-serif;font-size:11.5px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--accent);margin-bottom:2px;}
  .ns-outline{grid-template-columns:1fr;}
}

/* Diagram components. Every diagram is a <figure class="dg ..."> with a title and a one-line "how to read this". */
.dg{margin:22px 0;border:1px solid var(--border-strong);border-radius:12px;background:var(--surface-alt);padding:14px 16px;}
.dg figcaption{margin:0 0 12px;}
.dg .dg-title{display:block;font-weight:700;font-size:15.5px;color:var(--text);}
.dg .dg-how{display:block;font-size:13.5px;color:var(--text-secondary);margin-top:2px;line-height:1.5;}
.dg small{display:block;font-size:12.5px;color:var(--text-secondary);font-weight:500;}
.dg,.dg *{box-sizing:border-box;}
.dg ol,.dg ul{list-style:none;margin:0;padding:0 !important;}
.dg li{margin:0 !important;font-size:15px !important;line-height:1.45 !important;text-align:left !important;}

/* nested boxes */
.dg-nest .nest{border:2px solid var(--border-strong);border-radius:10px;padding:10px 12px;background:var(--surface);}
.dg-nest .nest-label{font-weight:700;font-size:15px;}
.dg-nest .n1{border-color:var(--accent);}
.dg-nest .nest-row{display:grid;grid-template-columns:1.4fr 1fr;gap:10px;margin-top:10px;}
.dg-nest .n2.ok{border-color:var(--correct);background:var(--correct-tint);}
.dg-nest .n2 .n3{margin-top:8px;border-style:dashed;font-size:14px;}
@media (max-width:600px){.dg-nest .nest-row{grid-template-columns:1fr;}}

/* decision tree: numbered yes/no tests, each with its "No" exit */
.dg-dt ol>li{display:grid;grid-template-columns:1fr 1fr;gap:8px;align-items:stretch;position:relative;padding-bottom:22px;}
.dg-dt ol>li::after{content:"\2193  Yes";position:absolute;left:12px;bottom:2px;font-size:12.5px;font-weight:700;color:var(--correct);}
.dg-dt ol>li:last-child{padding-bottom:0;}
.dg-dt ol>li:last-child::after{content:none;}
.dg-dt .q{border:2px solid var(--accent);border-radius:10px;background:var(--surface);padding:8px 12px;}
.dg-dt .q b{color:var(--accent);margin-right:4px;}
.dg-dt .no{border:1px dashed var(--border-strong);border-radius:10px;padding:8px 12px;background:var(--surface);}
.dg-dt .no span{font-weight:700;color:#9b2c1d;}
.dg-dt .end{grid-column:1 / -1;border:2px solid var(--correct);background:var(--correct-tint);border-radius:10px;padding:8px 12px;font-weight:700;}
@media (max-width:600px){.dg-dt ol>li{grid-template-columns:1fr;}}

/* flowchart: vertical steps joined by arrows, with an exit on each step */
.dg-flow ol>li{position:relative;border:2px solid var(--accent);border-radius:10px;background:var(--surface);padding:10px 14px;margin-bottom:28px !important;}
.dg-flow ol>li:not(:last-child)::after{content:"\2193";position:absolute;left:50%;bottom:-26px;transform:translateX(-50%);font-size:20px;font-weight:700;color:var(--accent);line-height:1;}
.dg-flow ol>li:last-child{margin-bottom:0 !important;border-color:var(--correct);background:var(--correct-tint);}
.dg-flow .step-title{display:block;font-weight:700;}
.dg-flow .exit{display:block;margin-top:6px;font-size:14px;color:#9b2c1d;}

/* classification tree */
.dg-tree ul{margin:6px 0 0 14px !important;padding-left:14px !important;border-left:2px solid var(--border-strong);}
.dg-tree li{position:relative;padding:4px 0 4px 12px;}
.dg-tree li::before{content:"";position:absolute;left:0;top:18px;width:10px;border-top:2px solid var(--border-strong);}
.dg-tree .node{display:inline-block;border:2px solid var(--border-strong);border-radius:8px;padding:5px 10px;background:var(--surface);font-weight:600;max-width:100%;}
.dg-tree .root>.node{border-color:var(--accent);}
.dg-tree .leaf>.node{border-color:var(--correct);background:var(--correct-tint);}
.dg-tree .note{display:block;font-size:13.5px;color:var(--text-secondary);margin:3px 0 0 2px;font-weight:500;}
.dg-tree>ul{margin-left:0 !important;border-left:none;padding-left:0 !important;}
.dg-tree>ul>li::before{content:none;}

/* Timeline: events in time order, left to right on desktop, top to bottom on phones */
.dg-time ol{display:grid;grid-template-columns:repeat(var(--n,4),1fr);gap:10px;counter-reset:t;}
.dg-time ol>li{position:relative;border:2px solid var(--border-strong);border-radius:10px;background:var(--surface);padding:10px 12px 10px;}
.dg-time ol>li .when{display:block;font-weight:700;color:var(--accent);font-size:14px;}
.dg-time ol>li{min-width:0;overflow-wrap:anywhere;}
.dg-time ol>li.key{border-color:var(--correct);background:var(--correct-tint);}
.dg-time ol>li:not(:last-child)::after{content:"\2192";position:absolute;right:-9px;top:50%;transform:translateY(-50%);font-weight:700;color:var(--accent);background:var(--surface-alt);line-height:1;z-index:1;}
@media (max-width:600px){.dg-time ol{grid-template-columns:1fr;}.dg-time ol>li:not(:last-child)::after{content:"\2193";right:auto;left:50%;top:auto;bottom:-14px;transform:translateX(-50%);}}
/* Party-relationship: parties as boxes, links as labelled lines */
.dg-party .parties{display:grid;grid-template-columns:repeat(var(--n,3),1fr);gap:10px;align-items:stretch;}
.dg-party .party{border:2px solid var(--border-strong);border-radius:10px;background:var(--surface);padding:10px 12px;text-align:left;}
.dg-party .party b{display:block;}
.dg-party .party.ok{border-color:var(--correct);background:var(--correct-tint);}
.dg-party .party.out{border-style:dashed;}
.dg-party .links{list-style:none;margin:12px 0 0;padding:0 !important;}
.dg-party .links li{border-left:4px solid var(--accent);padding:4px 10px !important;margin:6px 0 !important;background:var(--surface);border-radius:0 8px 8px 0;}
.dg-party .links li.no{border-left-color:#9b2c1d;}
@media (max-width:600px){.dg-party .parties{grid-template-columns:1fr;}}
@media print{.dg,.ns-box,.ns-ex,.ns-case>li{break-inside:avoid;}}

/* Left-aligned reading text (justified text leaves wide gaps on phones) */
.note-std .prose p,.note-std .prose li,.note-std .prose td{text-align:left;-webkit-hyphens:manual;hyphens:manual;}

.note-std{--text-muted:#6b6455;}

/* Telugu headings use the one Telugu font that is loaded */
.read-grid.te h1,.read-grid.te h2,.read-grid.te h3,.read-grid.te h4{font-family:"Lora","Noto Sans Telugu",Georgia,serif;}


/* Comfortable list spacing, including classed lists (key points, related, self-test) */
.note-std .prose ul:not(.dg ul) > li,.note-std .prose ol:not(.dg ol) > li{margin-bottom:12px;line-height:1.75;}
.note-std .prose .ns-ex li,.note-std .prose .ns-outline li,.note-std .prose .ns-keys li{margin-bottom:12px !important;line-height:1.75 !important;}
.note-std .ns-related li{margin-bottom:0 !important;}

/* Syllabus position badge: generated by CSS from a data attribute, so it is not page text, not in meta, JSON-LD or breadcrumb */
.note-std .ns-num{margin:6px 0 4px;}
.note-std .ns-num::before{content:attr(data-num);display:inline-block;font:700 12px/1 Inter,sans-serif;letter-spacing:.06em;text-transform:uppercase;color:var(--accent);background:var(--accent-tint);border-radius:12px;padding:6px 10px;}

/* Tap-or-hover word meanings: [[w:word|meaning]] in note source.
   With JavaScript a small tooltip opens right above the word (kept inside the screen).
   Without JavaScript the meaning shows from the word itself (CSS only). */
.w{position:relative;border-bottom:1.5px dotted var(--accent);cursor:help;}
.w:hover,.w:focus{background:var(--accent-tint);outline:none;}
.w:hover::after,.w:focus::after{content:attr(data-m);position:absolute;left:0;bottom:calc(100% + 6px);width:max-content;max-width:220px;z-index:20;background:#221F1B;color:#fff;font:500 14px/1.4 Inter,sans-serif;padding:6px 10px;border-radius:8px;text-align:left;white-space:normal;}
.w-js .w:hover::after,.w-js .w:focus::after{display:none;}
.w-tip{position:fixed;display:none;z-index:60;max-width:min(260px,calc(100vw - 16px));background:#221F1B;color:#fff;font:500 14px/1.4 Inter,"Noto Sans Telugu",sans-serif;padding:7px 11px;border-radius:8px;box-shadow:0 3px 12px rgba(0,0,0,.25);pointer-events:none;}
.w-tip::after{content:"";position:absolute;left:var(--ax,50%);bottom:-5px;width:10px;height:10px;background:#221F1B;transform:translateX(-50%) rotate(45deg);}
.w-tip.below::after{bottom:auto;top:-5px;}
@media print{.w{border-bottom:none;}.w::after,.w-tip{display:none !important;}}
